2012-05-03 190 views
0

我無法理解爲什麼我的輸出變量在下面的代碼中返回null。我已經在調試中介紹了它,並且複製/運行了sql語句,並且它確實返回了期望的值。但是,當我運行它,只是空。任何幫助將是偉大的..SQL Server 2008爲輸出值返回空值的存儲過程

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 
+0

*快門*。 SQL注入的這種類型的過程已經成熟。 – Thomas

+0

@Thomas謝謝。我知道這與生產環境中的最佳實踐遠遠不同,但這是駐留在本地計算機上的個人應用程序,很可能會保持這種狀態。 – StatsViaCsh

回答

1

您沒有在任何地方設置@count變量。

變化

SELECT COUNT(ID)

SELECT @count = COUNT(ID)

+0

當然。謝謝。 :) – StatsViaCsh