SQL Server 2008存储过程为输出值返回null

时间:2012-05-03 02:21:32

标签: tsql stored-procedures sql-server-2008-r2

我无法理解为什么我的输出变量在下面的代码中返回null。我在调试中逐步完成了它,并复制/运行了sql语句,它确实返回了预期的值。但是当我运行它时,只需为null。任何帮助都会很棒..

ALTER PROCEDURE [dbo].[spCountOfMostRecentByTableName] @table VARCHAR(120),
    @count BIGINT OUTPUT

AS
BEGIN

DECLARE @parameters NVARCHAR(100)
SET @parameters = '@count BIGINT OUTPUT'

DECLARE @date DATE = dbo.MostRecentTradeDateForDataDownload()

DECLARE @sql NVARCHAR(MAX) = N'

SELECT COUNT(ID)
FROM ' + @table + 
' WHERE DateAdded = ''' + CAST(@date AS CHAR) + '''';

EXEC sp_executesql @sql, @parameters, @count = @count OUTPUT
SELECT @count

END

1 个答案:

答案 0 :(得分:1)

您没有在任何地方设置@count变量。

更改

SELECT COUNT(ID)

SELECT @count = COUNT(ID)