Я использую SQL Server 2014.
Я пытаюсь обновить созданную мной таблицу, в которой есть столбец первичного ключа с именем pol_pk
. Все данные в таблице заполнены, около 60 000 записей, за исключением 1 столбца, в котором еще нет данных, который мы можем назвать emptycolumn
.
Мне нужно заполнить пустой столбец данными из связанных сервер. Две таблицы имеют общий ключ на pol_pk
Я пробовал:
insert into table1 (emptycolumn)
select * from openquery(linkedserver,'
select pol_pk, emptycolumn
from linkedservertable
with ur') a
where a.pol_pk = table1.pol_pk
, но это не сработает.
Я подумал, что мог бы просто запустить обычный подзапрос и вставить результаты этого в временную таблицу, а затем выбрать из временной таблицы, например:
insert into #temp1(pol_pk int, emptycolumn char(2))
select * from openquery(linkedserver,'
select pol_pk, emptycolumn
from linkedservertable
with ur')
insert into table1(emptycolumn)
select emptycolumn from #temp1 a
where a.pol_pk = table1.pol_pk
Я не пробовал это раньше, и я не уверен, что это правильные методы.