動的 SQL クエリ結果を SQL Server 変数に保存する
SQL Server で動的 SQL を操作するには、多くの場合、後続の処理のためにクエリ結果を変数にキャプチャする必要があります。これは、動的クエリが単一の値を返す場合に特に役立ちます。
動的 SQL クエリが特定の都市の顧客をカウントするシナリオを考えてみましょう。 課題は、このカウントを効率的に取得し、ストアド プロシージャ内の変数に割り当てることです。
出力パラメーターとともに使用される sp_executesql
システム ストアド プロシージャは、解決策を提供します。これにより、動的 SQL クエリの結果を変数に直接割り当てることができます。
これは、@count
変数にカウントを格納する方法を示す改良されたコード例です。
<code class="language-sql">DECLARE @sqlCommand NVARCHAR(1000); DECLARE @count INT; DECLARE @city VARCHAR(75); SET @city = 'New York'; SET @sqlCommand = N'SELECT @cnt = COUNT(*) FROM customers WHERE City = @city'; EXECUTE sp_executesql @sqlCommand, N'@city nvarchar(75), @cnt int OUTPUT', @city = @city, @cnt = @count OUTPUT; SELECT @count;</code>
この改訂されたコードは、動的 SQL 内の @cnt
変数を COUNT(*)
の結果に設定します。 sp_executesql
は、出力パラメーター @city
と @cnt
を使用してクエリを実行します。結果は @count
変数に適切に保存されます。
以上が動的 SQL の結果を SQL Server の変数に返すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。