Ho le seguenti due tabelle:
Table1
----------
ID Name
1 A
2 B
3 C
Table2
----------
ID Name
1 Z
Devo inserire dati da Table1
a Table2
. Posso usare la seguente sintassi:
INSERT INTO Table2(Id, Name) SELECT Id, Name FROM Table1
Tuttavia, nel mio caso, potrebbero esistere ID duplicati in Table2
(nel mio caso, è solo " 1
") e non voglio copiarlo di nuovo poiché ciò genererebbe un errore.
Posso scrivere qualcosa del genere:
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
C'è un modo migliore per farlo senza usare IF - ELSE
? Voglio evitare due INSERT INTO-SELECT
affermazioni basate su alcune condizioni.