Проблема в том, что у вас есть две ссылки на предложение FROM на [DB].[dbo].[Table_1a]
, и вы не стали их псевдонимами.
Так что в предложении WHERE подзапроса (который имеет доступ как к внутренним, так и к внешним запросам, ипоэтому в обоих случаях [DB].[dbo].[Table_1a]
) оптимизатор не знает, какое из них вы имеете в виду:
WHERE [DB].[dbo].[Table_1a].[Column] = ...
Если вы дадите два разных псевдонима этим ссылкам таблицы, и выберите одинв предложении WHERE все должно быть в порядке:
INSERT [DB].[dbo].[Table_1]
SELECT *
FROM [DB].[dbo].[Table_1a] t1
WHERE NOT EXISTS
(SELECT *
FROM [DB].[dbo].[Table_1a] t2
WHERE t2.[Column] = [DB].[dbo].[Table_1].[Column])
EDIT:
Другая проблема заключается в том, что вы вставляете в Table_1
записи в Table_1a
ГДЕ там не существуетзапись в Table_1a
, соответствующая записи в Table_1
.
Это не имеет особого смысла.Вероятно, вы хотели вставить 1a
записи, которые еще не существуют в 1
.Так что, вероятно, вы имели в виду, что это прекрасно работает:
INSERT INTO Table_1
SELECT * FROM Table_1a t2
WHERE NOT EXISTS(
SELECT * FROM Table_1 t1
WHERE t1.Col1=t2.Col1
)