次の2つのテーブルがあります。
Table1
----------
ID Name
1 A
2 B
3 C
Table2
----------
ID Name
1 Z
からTable1にデータを挿入する必要がありTable2ます。次の構文を使用できます。
INSERT INTO Table2(Id, Name) SELECT Id, Name FROM Table1
ただし、私の場合、重複したIDが存在する可能性がありTable2(私の場合、それは単なる " 1"です)、エラーをスローするため、再度コピーすることはしたくありません。
私はこのようなものを書くことができます:
IF NOT EXISTS(SELECT 1 FROM Table2 WHERE Id=1)
INSERT INTO Table2 (Id, name) SELECT Id, name FROM Table1
ELSE
INSERT INTO Table2 (Id, name) SELECT Id, name FROM Table1 WHERE Table1.Id<>1
これを使用せずに行うより良い方法はありIF - ELSEますか?INSERT INTO-SELECTある条件に基づく2つのステートメントを避けたいです。
![SQLサーバーからテーブルデザインを右クリックし、[インデックス/キー]を選択します。](https://i.stack.imgur.com/PS2z9.jpg)
