2012-05-03 12 views
0

以下のコードの出力変数がnullを返す理由の一番下には到達できません。私は、デバッグでそれを踏んだり、SQL文をコピー/実行して、期待値を返します。しかし、私がそれを実行すると、ただnullです。どんな助けも素晴らしいでしょう。出力値のnullを返す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

@トーマスありがとう。私はそれが実稼働環境でのベストプラクティスから遠いことを知っていますが、これは私のローカルマシンに常駐する個人的なアプリです。 – StatsViaCsh

答えて

1

あなたは@count変数をどこにも設定していません。

変更

SELECT COUNT(ID)

にSELECT @count = COUNT(ID)

+0

もちろん。ありがとう。 :) – StatsViaCsh

関連する問題