ホームページ >データベース >mysql チュートリアル >SQL Server の一時テーブルまたはテーブル変数に複数のテーブルのデータを効率的に挿入するにはどうすればよいですか?

SQL Server の一時テーブルまたはテーブル変数に複数のテーブルのデータを効率的に挿入するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-29 12:32:10606ブラウズ

How Can I Efficiently Insert Data from Multiple Tables into a Temporary Table or Table Variable in SQL Server?

MERGE を使用した一時テーブルまたはテーブル変数への挿入

SQL Server では、OUTPUT 句で複数のテーブルからデータを取得できないため、挿入操作中に特定の値をキャプチャします。ただし、MERGE ステートメントは、この問題の解決策を提供します。

MERGE を使用して一時テーブルまたはテーブル変数にデータを挿入するには:

  1. MERGE ステートメントを使用して一時テーブルまたはテーブル変数を設定します。 。これにより、挿入された行とソース データの両方から値を取得できます。
  2. MERGE ステートメントの OUTPUT 句を使用して、出力する列を指定します。

例を次に示します。

MERGE INTO Table3 USING
(
    SELECT null as col2, 
           110 as col3, 
           Table1.ID as col4, 
           Table2.Column2 as col5,
           Table2.Id as col6
    FROM Table1
    JOIN Table1Table2Link on Table1.ID=Table1Table2Link.Column1
    JOIN Table2 on Table1Table2Link.Column2=Table2.ID
) AS s ON 1 = 0 -- Always not matched
WHEN NOT MATCHED THEN
INSERT (Column2, Column3, Column4, Column5)
VALUES (s.col2, s.col3, s.col4, s.col5)
OUTPUT Inserted.ID, s.col6
INTO @MyTableVar (insertedId, Table2Id); 

この例では、MERGE ステートメントは一時テーブル @MyTableVar にInserted.ID 値と Table2.ID 値。 OUTPUT 句は、これら 2 つの列を一時テーブルに出力することを指定します。

この方法を使用すると、SQL Server の MERGE ステートメントの機能を使用して、挿入操作中にさまざまなテーブルからデータを効率的にキャプチャして操作できます。

以上がSQL Server の一時テーブルまたはテーブル変数に複数のテーブルのデータを効率的に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。