2010-05-28 3 views
9

Я хотел бы скопировать данные из одной таблицы в другую между разными серверами.Копирование данных из одной таблицы базы данных SQL Server в другую

Если с в том же сервере и различных баз данных, я использовал следующие

SELECT * INTO DB1..TBL1 FROM DB2..TBL1 (to copy with table structure and data) 

INSERT INTO DB1..TBL1(F1, F2) SELECT F1, F2 FROM DB2..TBL1 (copy only data) 

Теперь мой вопрос скопировать данные из SERVER1 -> DB1 -> tbl1 в SERVER2 -> DB2 -> TBL2

ответ

32

Если два сервера настроены как Связанные серверы в SQL Server, вы можете использовать полное имя.

Insert Into Server1.Database1.dbo.Table1 (Col1, Col2) 
Select Col1, Col2 From Server2.Database2.dbo.Table2 

Вы можете также правой кнопкой мыши базу данных и перейти к Tasks ->Import Data или Export Data (В SQL Server 2000 опция меню называется All Tasks)

Это запустит мастера и выполнить импорт/экспорт для вас ,

EDIT:

Вот ссылка для создания связанных серверов - http://msdn.microsoft.com/en-us/library/ms190479.aspx

Вы можете увидеть список серверов, выполнив

select * from sys.servers 

Или с помощью папок по Server Objects>Linked Servers

HTH

+0

Благодарим за быстрый ответ. Как проверить, установлены ли оба сервера в качестве связанного сервера или нет? Могу ли я установить другой сервер так? Поскольку это необходимо выполнять через хранимую процедуру на регулярной основе, я не могу использовать опцию мастера. – satya

+0

Я отредактировал свой ответ с дополнительной информацией, спасибо Barry – codingbadger

+0

Для тех, кто читает это позже, я обнаружил, что, по крайней мере, в настоящее время (SQL 2008 R2), вы не можете включить 'IDENTITY_INSERT' в таблице через связанный сервер. –

0

Вы можете настроить связанные серверы в SSMS и выполнять кросс-серверные запросы.

1

Я думаю. Я немного опоздал на этот вопрос :-), но вы можете попробовать использовать SSIS в случае , два сервера не настроены как Связанные серверы

Смежные вопросы