У меня есть следующий оператор SQL
INSERT INTO A_Table (field1, field2)
SELECT field1, field2 FROM B_Table
WHERE field1 NOT IN (
SELECT field1 FROM A_Table);
В основном мне нужно скопировать все данные из B_Table в A_Table с ограничением: field1 из B_Table, которого нет в A_Table. Мне нужно добавить это ограничение, так как field1 является ключом.
Это похоже на конфликт: field1 не в A_Table копируется из B_Table в A_Table. В процессе вставки скопированная запись из B_Table будет существовать в A_Table. Не уверен, работает ли он или нет, или какой-либо неожиданный результат?
Может быть, все в порядке. Последний SELECT кэшируется во временной таблице и не обновляется при вставке?
Кстати, мой SQL-сервер - это Microsoft SQL Server 2005.