Think Twice
IT技術メモ | SQL Serverのメモ
Created: 2022-04-22 / Updated: 2022-04-22

SQL ServerのMERGE文


目次


概要

移送元テーブル(A)と、移送先テーブル(B)があったとします。

を一つのSQLで実現できるのがMERGE文です。

キー 移送元テーブル(A) 移送先テーブル(B) 実行されるSQL
KEY1が・・・ ある ある WHEN MATCHED THEN UPDATE...
KEY2が・・・ ある ない WHEN NOT MATCHED BY TARGET THEN INSERT...
KEY3が・・・ ない ある WHEN NOT MATCHED BY SOURCE THEN DELETE...

MERGE文

Copy
MERGE INTO
    <対象テーブル> tgt
USING
  (
    SELECT
      KEY,
      XXXX,
      YYYY,
        :
    FROM
      <データ取得元テーブルなど>
  ) src
ON
  src.KEY = tgt.KEY
WHEN MATCHED THEN
  UPDATE SET
    XXXX = src.XXXX,
    YYYY = src.YYYY,
      :
WHEN NOT MATCHED BY TARGET THEN
  INSERT (
    KEY,
    XXXX,
    YYYY,
     :
  )
  VALUES (
    src.KEY,
    src.XXXX,
    src.YYYY,
      :
  )
WHEN NOT MATCHED BY SOURCE THEN
  DELETE 
;

解説


参考

参照

参考サイト