ホームページ > データベース > mysql チュートリアル > MERGE ステートメントは、SQL Server の INSERT 操作で生成された ID とソース データをどのように取得できますか?

MERGE ステートメントは、SQL Server の INSERT 操作で生成された ID とソース データをどのように取得できますか?

Barbara Streisand
リリース: 2024-12-29 15:54:12
オリジナル
997 人が閲覧しました

How Can MERGE Statement Retrieve Generated Identity and Source Data in SQL Server INSERT Operations?

挿入... マージ... 選択: MERGE を利用して生成された ID を取得

SQL Server では、INSERT... SELECT ステートメントを使用すると、別のテーブルまたはクエリからターゲット テーブルにデータを挿入できます。ただし、複数のソースから値を抽出する場合には制限があります。解決策としては、MERGE ステートメントを使用すると、挿入データとソース データの両方を取得できるようになります。

説明のために、次の状況を考えてみましょう。

INSERT INTO Table3 (Column2,列 3、列 4、列 5)<br>SELECT null、110、Table1.ID、 Table2.Column2<br>FROM Table1<pre class="brush:php;toolbar:false"> JOIN Table1Table2Link on Table1.ID=Table1Table2Link.Column1
 JOIN Table2 on Table1Table2Link.Column2=Table2.ID
ログイン後にコピー

Table3 と Table2.ID から生成された ID (Inserted.ID) を取得して挿入する必要が生じます。一時テーブルまたは変数に変換します。この目的には OUTPUT 句がよく使用されますが、別のテーブルからデータを抽出することはできません。

解決策は、INSERT...SELECT の代わりに MERGE を使用してテーブルにデータを設定することです。これにより、出力句の挿入値とソース値の両方にアクセスできるようになります:

MERGE INTO Table3 USING<br>(</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">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 --常に一致しない
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 を使用すると、OUTPUT 句は挿入された ID (Inserted.ID) と Table2 からの値 (Table2.ID) の両方を取得し、さらに使用するために @MyTableVar に挿入できます。処理中です。

以上がMERGE ステートメントは、SQL Server の INSERT 操作で生成された ID とソース データをどのように取得できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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