簡體   English   中英

在存儲過程中使用動態SQL

[英]using dynamic sql in a stored procedure

我有一個存儲過程,該存儲過程將以下具有表名@percapHist變量作為參數。 它將保留類似於“ percaphist1408 ”的值。

我想計算表中的記錄數,並將該值保存在變量中以備后用。 我現在嘗試使用dynamic sql 該語句可以快速編譯,但是運行時必須聲明scalar variable @percapcount 這是在存儲過程中使用的動態sql語句。

SET @tsql = 'SELECT @percapCount = Count(socSecNo) FROM ' + @percapHist
EXEC(@tsql)

當我在執行以上語句后檢查變量@tsql時,我看到以下內容

SELECT @percapCount = Count(socSecNo) FROM percapHist1408

但是當我運行上面的EXEC時,我得到了“必須聲明標量變量@perapcount

如果要從動態SQL返回值,請使用sp_executesql

DECLARE @tsql nvarchar(max);
DECLARE @percapCount int;

SET @tsql = 'SELECT @percapCount = Count(socSecNo) FROM ' + @percapHist;

EXEC sp_executesql @tsql, N'@percapCount INT OUTPUT', @percapCount = @percapCount OUTPUT;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM