Eu tenho as duas tabelas a seguir:
Table1
----------
ID Name
1 A
2 B
3 C
Table2
----------
ID Name
1 Z
Preciso inserir dados de Table1
para Table2
. Posso usar a seguinte sintaxe:
INSERT INTO Table2(Id, Name) SELECT Id, Name FROM Table1
No entanto, no meu caso, podem existir IDs duplicados em Table2
(no meu caso, é apenas " 1
") e não quero copiá- los novamente, pois isso geraria um erro.
Posso escrever algo assim:
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
Existe uma maneira melhor de fazer isso sem usar IF - ELSE
? Quero evitar duas INSERT INTO-SELECT
declarações com base em alguma condição.