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 を使用することで、データを挿入できます挿入された ID を含む追加情報を複数のテーブルから 1 つのステートメントで取得します。
以上がSQL Server の MERGE ステートメントはどのようにしてデータを挿入し、異なるテーブルから複数の列を出力できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。