忍者ブログ

ゆるいSEの小ネタ集

ゆるキャラ好きのITエンジニアが書くTips。 ゆるキャラ命なSEのIT徒然草 https://itmagic.hatenablog.com/

[SQLServer]SQL(MERGE句)

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

[SQLServer]SQL(MERGE句)

スッキリかけるが、insert時に独自に採番したい場合などで
シーケンスが使えない、変数をインクリメントする処理を書く等ができないなど
融通が利かないケースがあるので注意。

■サンプル
BEGIN
 --TABLEB:insert/update対象テーブル
 MERGE INTO [dbo].[TABLEB] AS b
 USING (
  --insert/update元データ取得SQL
  SELECT
   KEYB1
   ,COLA1
   ,COLA2
  FROM TABLEA
 ) AS a ON (
     a.KEYA1 = b.KEYB1
 )
 WHEN MATCHED AND (
   a.COLA3 = '1'  --合致するキーがあり、かつ~~~の場合
 ) THEN
  UPDATE SET 
   b.COLA1 = a.COLB1  ---注)キー項目は含めない
   ,b.COLA2 = a.COLB2
 --合致しない場合、insert
 WHEN NOT MATCHED THEN
  INSERT (
   KEYB1
   ,COLB1
   ,COLB2
  ) VALUES (
   KEYA1
   ,COLA1
   ,COLA2
  );
END
PR

コメント

ただいまコメントを受けつけておりません。

プロフィール

HN:
ゆるキャラ命
性別:
非公開

P R