2009-02-27 7 views

Antwort

2

Unter der Annahme, sie sind den gleichen Primärschlüssel teilen.

insert TableB 
select A.* 
from TableA A 
left join TableB B ON A.pk = B.pk 
where B.pk is null 
2

Dies sollte

INSERT INTO TableB 
SELECT * FROM TableA 
EXCEPT 
SELECT * FROM TableB 
0

Alternative Form der Antwort des sambo arbeiten.

INSERT TableB 
SELECT * 
FROM TableA A 
WHERE NOT EXISTS (
    SELECT * 
    FROM TableB B 
    WHERE A.pk = B.pk) 
+0

Wer unten markiert ist, handelt nicht mit Grund. Das funktioniert ganz gut ... Ich bevorzuge den LEFT JOIN-Ansatz, wenn ich Tische vergleiche, aber das ist NICHT falsch ... – MatBailie

+0

+1 für den Abwärts-Marker ... – MatBailie

+0

Warum danke Dems. In der Tat könnte es signifikant anders (besser oder schlechter) durchführen, aber es ist ein sehr häufiges Muster. – MikeW