0
我讀過如何返回與動態SQL輸出參數的幾個例子,但都被強似他們(我在略有不同,他們創建的過程內的變量,假設這是我問題的根源)。我得到的錯誤:與輸出參數語法清晰動態SQL
Must declare the table variable "@tbl".
當我試圖運行下面的程序(執行它的測試代碼後列出)。我關門了嗎?
DECLARE @tbl nvarchar(40)
DECLARE @bnch INT
SET @tbl = 'tblDailyPricingAndVol'
EXEC sprocReturnDataPointBenchmark @tbl, @bnch
存儲過程:
ALTER PROCEDURE [dbo].[sprocReturnDataPointBenchmark] @tblName NVARCHAR(50),
@benchmark BIGINT OUTPUT
AS
BEGIN
DECLARE @sql nvarchar(1000),
@parameters NVARCHAR(100) = N'@tbl NVARCHAR(50), @benchOUT BIGINT OUTPUT';
SET @sql = N'SELECT @benchOUT = Count(ID) FROM @tbl WHERE DateAdded = ' +
'(SELECT MAX(DateAdded) FROM tblDailyATR AS T2)';
EXEC sp_executesql @sql, @parameters, @tbl = @tblName, @benchOUT = @benchmark OUTPUT
SELECT @benchmark
END