ホームページ > データベース > mysql チュートリアル > SQL Server の MERGE ステートメントはどのようにしてデータを挿入し、異なるテーブルから複数の列を出力できますか?

SQL Server の MERGE ステートメントはどのようにしてデータを挿入し、異なるテーブルから複数の列を出力できますか?

Linda Hamilton
リリース: 2024-12-27 10:04:14
オリジナル
930 人が閲覧しました

How Can SQL Server's MERGE Statement Insert Data and Output Multiple Columns from Different Tables?

SQL Server で MERGE を使用したデータの挿入と出力

このクエリでは、SELECT ステートメントを使用して Table3 にデータを挿入し、キャプチャします。挿入された ID と別のテーブルの別の列値の両方。 OUTPUT 句を使用した最初の試行は、テーブル間の参照が原因で失敗しました。

この制限を克服するために、MERGE ステートメントを利用します。 MERGE ステートメントを使用して Table3 にデータを設定すると、挿入されたデータとソース データの両方の値を出力句で利用できます。

修正されたクエリは次のとおりです。

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 ステートメントは、Table3 に、 subquery.
  • OUTPUT 句は、挿入された ID と Table2.ID の両方を一時テーブル @MyTableVar に出力することを指定します。
  • WHEN NOT MATCHED 句は、データが一致する場合にデータが挿入されることを保証します。 Table3 にはまだ存在しません。

このように MERGE を使用することで、データを挿入できます挿入された ID を含む追加情報を複数のテーブルから 1 つのステートメントで取得します。

以上がSQL Server の MERGE ステートメントはどのようにしてデータを挿入し、異なるテーブルから複数の列を出力できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート