2012-05-28 7 views

答えて

23

outputパラメータを指定してsp_executesqlを使用すると、スカラー結果を取得できます。

DECLARE @query as nvarchar(200), @count int; 
SET @query = N'SELECT @count = COUNT(*) FROM table'; 

EXEC sp_executesql @query, 
        N'@count int OUTPUT', 
        @count = @count OUTPUT 

SELECT @count AS [@count] 
+0

私はコードを正しく理解していないのですか、それはOUTPUTによってカウント変数にクエリ結果をasignしますか? – Malyo

+1

@Malyo - 外側スコープに変数@countを宣言します。これは 'sp_executesql'コールで出力パラメータとして渡されます。これは、出力パラメータへの代入がその変数に伝播されることを意味します。 'OUTPUT'パラメータの詳細については、[TSQL Basics II - パラメータ継承セマンティクス](http://blogs.msdn.com/b/sqlprogrammability/archive/2006/06/09/624531.aspx)を参照してください。 –

9

あなたはこのようにそれを行うことができます。

exec (@query) 

または、好ましくは、このような:詳細情報については

execute sp_executesql @query 

this MSDN articleを確認してください。

関連する問題