電気羊の執務室

魔法を作る仕事をしています。

SQL ServerにはMergeがある

SQL ServerでInsert or Update

今回、会社のデータ処理で、
SQL Serverを使って、データが存在していれば更新、
なければ追加、という処理をする必要がありました。

例によってGoogle先生に聞くと、 『SQL Serverには、Merge文があるんだよ』というお告げを受けました。

構文

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
MERGE INTO test_tableA AS A
    USING test_tableB AS B
    ON
    (
       A.no = B.no
    )
    WHEN MATCHED THEN
        UPDATE SET
             name = B.name
            ,age = B.age
    WHEN NOT MATCHED THEN
        INSERT (no,name,age)
        VALUES
        (
             B.no
            ,B.name
            ,B.age
        )
;

暗記できる気はしないので、いつか同じ事をやる時は、
このエントリーを見返すと思います。

参考資料

https://lightgauge.net/database/sqlserver/2446/#MERGE1SQLOK

Comments