SQL EXECUTE |
尚未結案
|
jcjroc
高階會員 發表:21 回覆:279 積分:115 註冊:2002-09-18 發送簡訊給我 |
CREATE PROCEDURE [TestProc]
@HH bigint
AS
DECLARE @TempKMSnTab TABLE(KMSn bigint)
DECLARE @TestString varchar(256) set @TestString='insert @TempKMSnTab select sn from pkmdata where sn= ' CAST(@HH AS VARCHAR(64)) EXECUTE ( @TestString)
.
.
.
. GO 需求是我必須將從pkmdata 查到的資料塞入@TempKMSnTab 這個暫存的TABLE
然後拿它來做其他運用 我要如何正確的執行 EXECUTE 那行命令
|
StrongLemon
高階會員 發表:10 回覆:166 積分:105 註冊:2004-04-18 發送簡訊給我 |
|
jcjroc
高階會員 發表:21 回覆:279 積分:115 註冊:2002-09-18 發送簡訊給我 |
唉!!
本來想說用DECLARE 所建立的暫存TABLE速度比較快說
但微軟已經說了,DECLARE 所建立的暫存TABLE在某些敘述中是不能使用的.
看來只能用CREATE TABLE來建立暫存TABLE了.以下是微軟的說明:: 函數與變數可以宣告為 table 型別。table 變數可以在函數、預存程序、以及批次中使用。 請盡量使用 table 變數取代暫存資料表。table 變數提供了下列功能: table 變數的作用類似區域變數。它有一個定義完善的範圍,其為此變數宣告時的函數、預存程序、或批次。
在其範圍中,table 變數可以如一般資料表一樣的使用。它也可適用於任何在 SELECT、INSERT、UPDATE、以及 DELETE 陳述式中使用的資料表或資料表運算式。但是,table 不可在下列陳述式中使用: INSERT INTO table_variable EXEC stored_procedure SELECT select_list INTO table_variable statements. table 變數會在函數結束時、預存程序結束時,或定義 table 變數的批次處理結束時自動清除。 預存程序使用 table 變數所導致的預存程序重新編輯遠比使用暫存資料表要來的少。 含有 table 變數的交易只存在於 table 變數的更新期間。因此 table 變數要求較少的鎖定與記錄資源。
不支援在資料表變數之間的引數運算。此外,因為 table 變數有範圍限制,而且不是永續性資料庫一部份,所以不受交易復原 (transaction rollback) 影響。
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |