2009-02-27 1 views

ответ

2

Предполагая, что они являются используя один и тот же первичный ключ.

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

Это должно работать

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

Альтернативные формы ответа САМБО в.

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

Тот, кто отметил это не по причине. Это отлично работает ... Я предпочитаю подход LEFT JOIN при сравнении таблиц, но это НЕ ошибочно ... – MatBailie

+0

+1 злобному маркеру ... – MatBailie

+0

Зачем вам Демс. На самом деле он может выполнять значительно разные (лучше или хуже), но это очень распространенный шаблон. – MikeW