全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1402
推到 Plurk!
推到 Facebook!

SQL EXECUTE

尚未結案
jcjroc
高階會員


發表:21
回覆:279
積分:115
註冊:2002-09-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-11 13:59:36 IP:211.75.xxx.xxx 未訂閱
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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-11 17:11:42 IP:221.169.xxx.xxx 未訂閱
您好:使用範例如下    
--set @sqlstring = N'select t.* from #feepay t  where t.fno_ = ''' @fstr ''' order by fno_,date_'
--exec sp_executesql @sqlstring
jcjroc
高階會員


發表:21
回覆:279
積分:115
註冊:2002-09-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-14 07:57:35 IP:211.75.xxx.xxx 未訂閱
唉!! 本來想說用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) 影響。
系統時間:2024-05-03 12:29:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!