Можно ли скопировать данные из удаленной таблицы MSSQL в локальную таблицу? - PullRequest
0 голосов
/ 03 марта 2009

Каков наилучший способ сделать это? Я нашел несколько INSERT операторов, но все они, похоже, работают только для внутреннего копирования базы данных.

Мое исполнение:

INSERT INTO [PROGRAM003].[dbo].[faq]
    ([id], [category], [question], [answer], [tags])
SELECT ([id], [category], [question], [answer], [tags])
FROM [SQL2005_552664_gsow].[dbo].[faq]

Я пока не очень хорошо владею MSSQL, поэтому любая помощь приветствуется.

Ответы [ 4 ]

2 голосов
/ 03 марта 2009

Насколько «дистанционно» мы разговариваем? Если это другая база данных на том же сервере, вы можете просто добавить имя базы данных, как показано в вашем первоначальном примере:

INSERT INTO [mytable] SELECT * FROM [database].dbo.[table]

Если он находится на совершенно другом сервере, вам необходимо настроить его как связанные серверы. Тогда вы можете сделать это:

INSERT INTO [mytable] SELECT * FROM [server].[database].dbo.[table]

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

1 голос
/ 03 марта 2009

Вы можете использовать OPENDATASOURCE или OPENROWSET для доступа к таблицам на других серверах. Вам нужно будет предоставить учетные данные SQL в запросе или настроить обе базы данных, чтобы разрешить доступ к вашему идентификатору Windows, чтобы это работало. Вы также можете использовать мастер импорта / экспорта в SQL Server Management Studio - щелкните правой кнопкой мыши базу данных и выберите Задачи -> Импорт или Задачи -> Экспорт.

0 голосов
/ 14 апреля 2011

ИСПОЛЬЗОВАНИЕ master

GO

EXEC sp_addlinkedserver @server = 'RemoteSer', @srvproduct = '', @provider = 'MSDASQL', @provstr = 'DRIVER = {SQL Server}; SERVER = 000.000.000.000 \ SQLEXPRESS;' GO

SELECT * INTO bnkWeb.dbo.test1 ОТ [RemoteSer]. [Bnk]. [Dbo]. [Test1]

0 голосов
/ 03 марта 2009

Возможно, вы захотите взглянуть на DTS или (2005+) службы интеграции. Оба они будут брать данные из одной БД (таблица) и копировать данные в другую БД (таблица).

Ссылка на службы интеграции: http://msdn.microsoft.com/en-us/library/ms141091.aspx

...