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