12
@query
を実行するにはどうすればいいですか?また、変数を割り当てるときにクエリ結果を直接保存する方法はありますか?TSQL - クエリを変数として実行するには?
@query
を実行するにはどうすればいいですか?また、変数を割り当てるときにクエリ結果を直接保存する方法はありますか?TSQL - クエリを変数として実行するには?
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]
あなたはこのようにそれを行うことができます。
exec (@query)
または、好ましくは、このような:詳細情報については
execute sp_executesql @query
、this MSDN articleを確認してください。
私はコードを正しく理解していないのですか、それはOUTPUTによってカウント変数にクエリ結果をasignしますか? – Malyo
@Malyo - 外側スコープに変数@countを宣言します。これは 'sp_executesql'コールで出力パラメータとして渡されます。これは、出力パラメータへの代入がその変数に伝播されることを意味します。 'OUTPUT'パラメータの詳細については、[TSQL Basics II - パラメータ継承セマンティクス](http://blogs.msdn.com/b/sqlprogrammability/archive/2006/06/09/624531.aspx)を参照してください。 –