[英]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.