Как скопировать данные из оператора выбора в другую таблицу базы данных? - PullRequest
1 голос
/ 24 июня 2019

В sql server у меня есть два сервера, каждый с базой данных.На первом сервере (sql server 2005) я написал операторы select, которые затем показывают данные, имена столбцов которых затем совпадают с таблицами на 2-м сервере (схема не совпадает).Это в основном миграция данных с 2 серверов, где схема является новой на более новом сервере.

Но как теперь я могу взять данные из оператора select и в основном вставить их в новую таблицу?Кроме того, новая таблица имеет автоинкремент для столбца ID, но я хочу сохранить идентификаторы из старой базы данных, поскольку они используются в нескольких таблицах.

Спасибо

Ответы [ 2 ]

1 голос
/ 24 июня 2019

Это довольно просто, но есть некоторые неудобные кусочки, которые большинство людей не часто используют.

Самый простой способ перенести данные на новый сервер - создать Связанный сервер используя инструкции по этой ссылке.

Как только вы настроите связанный сервер (и, для этого примера, я предполагаю, что вы создаете ссылку на новом сервере, чтобы указать на старый сервер), я лично сделал бы запросы SELECT в Viewsна старом сервере.

Затем на новом сервере вы создадите последовательность запросов, подобную этой:

SET IDENTITY_INSERT MyNewTable1 ON
INSERT INTO MyNewTable1 [Optional field list here]
SELECT [Field List | *]
FROM MyOldServer.MyOldDB.dbo.MyViewForNewTable1
SET IDENTITY_INSERT MyNewTable1 OFF

SET IDENTITY_INSERT MyNewTable2 ON
INSERT INTO MyNewTable2 [Optional field list here]
SELECT [Field List | *]
FROM MyOldServer.MyOldDB.dbo.MyViewForNewTable2
SET IDENTITY_INSERT MyNewTable2 OFF

...

Et Voila.Ваши данные передаются с одинаковыми значениями идентичности.

0 голосов
/ 24 июня 2019

Для вставки с сервера А на сервер Б вам необходим Связанный сервер .

Чтобы сохранить одинаковые значения идентификаторов, вам необходимо включить IDENTITY_INSERT .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...