SQLの実行結果を複数の値を持つ変数に格納する方法


  1. テーブル変数を使用する方法:

テーブル変数を宣言し、SQLの実行結果をその変数に挿入します。例えば、次のようなコードで実行結果をテーブル変数に格納できます。

DECLARE @ResultTable TABLE (
    Column1 INT,
    Column2 VARCHAR(50)
);
INSERT INTO @ResultTable
EXEC YourStoredProcedure;

上記の例では、YourStoredProcedureというストアドプロシージャの実行結果が@ResultTableというテーブル変数に格納されます。

  1. XMLデータ型を使用する方法:

XMLデータ型を利用して、SQLの実行結果をXML形式で変数に格納することもできます。以下はその一例です。

上記の例では、YourTableというテーブルの特定の列をXML形式で@ResultXMLという変数に格納しています。

  1. カーソルを使用する方法:

カーソルを利用して、SQLの実行結果を1つずつ取得し、変数に追加することもできます。以下はその一例です。

DECLARE @Value INT;
DECLARE @ResultVariable TABLE (Value INT);
DECLARE YourCursor CURSOR FOR
SELECT Column1
FROM YourTable;
OPEN YourCursor;
FETCH NEXT FROM YourCursor INTO @Value;
WHILE @@FETCH_STATUS = 0
BEGIN
    INSERT INTO @ResultVariable (Value)
    VALUES (@Value);
    FETCH NEXT FROM YourCursor INTO @Value;
END;
CLOSE YourCursor;
DEALLOCATE YourCursor;

上記の例では、YourTableというテーブルからColumn1の値をカーソルを使用して1つずつ取得し、@ResultVariableというテーブル変数に格納しています。

これらの方法を使用することで、SQLの実行結果を複数の値を持つ変数に格納することができます。適切な方法を選択し、自身の要件に合わせて実装してください。