Подтвердить что ты не робот

Межсерверный SQL

Я хочу передать данные из одной базы данных сервера в другую базу данных сервера. Базы данных находятся на другом сервере mssql 2005. Репликация, вероятно, не является опцией, поскольку база данных назначения создается с нуля на основе [временного интервала].

Предпочитаю, что я сделал бы что-то вроде

insert *
from db1/table1
into db2/table2
where rule1 = true

Очевидно, что в этом script будут задействованы учетные данные подключения.

4b9b3361

Ответ 1

Я думаю, что вы хотите создать связанный сервер в соответствии с этой статьей msdn. Затем вы выбираете использование имени объекта с 4 частями, например:

Select * From ServerName.DbName.SchemaName.TableName

Ответ 2

Вы можете использовать Open Data Source.

EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO

EXEC sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE
GO


SELECT  *
FROM    OPENDATASOURCE('SQLOLEDB',
                   'Data Source=<Ip Of Your Server>;
                    User ID=<SQL User Name>;Password=<SQL password>').<DataBase name>.<SchemaName>.<Table Or View Name>

Go

Ответ 3

Доступны ли службы интеграции SQL Server (SSIS)? Если да, я бы это использовал.

Ответ 4

Вы будете передавать весь контент базы данных с одного сервера на другой или только некоторые данные из нескольких таблиц?

Для обоих вариантов SSIS выполнит эту работу, особенно если вы планируете переводить на регулярной основе.

Если вы просто хотите скопировать некоторые данные из 1 или 2 таблиц и предпочитаете делать это с помощью TSQL в SQL Management Studio, вы можете использовать связанный сервер, как это было предложено pelser

  • Настройка сервера исходной базы данных как связанного сервера
  • Используйте следующий синтаксис для доступа к данным
select columnName1, columnName2, etc from serverName.databaseName.schemaName.tableName

Ответ 5

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

Автоматическая репликация облегчит вашу работу, автоматически управляя ключами и отношениями.

Мне кажется, что проще всего начать репликацию моментальных снимков через MSSQL Server Studio, получить соответствующие T-SQL-скрипты (т.е. соответствующие инструкции T-SQL для публикации и подписки) и записать эти сценарии как часть задание в списке вакансий агента SQL или задание репликации в папке репликации.

Ответ 6

Вы можете пройти маршрут связанного сервера.

вы просто не можете использовать select *, чтобы вы вставляли в него выбор.

Я бы избегал репликации, если у вас нет опыта с ним, так как это может быть трудно исправить, если он ломается и может быть подвержен другим проблемам, если не правильно управляться.

Держите его простым, особенно если базы данных небольшие.

Ответ 7

Можете ли вы использовать службы преобразования данных для выполнения задания? Это обеспечивает всевозможные инструменты для сборки болтов вместе с этим.

Вы можете загрузить пакет функций SQL Server 2005 с веб-сайта Microsoft здесь

Ответ 8

CREATE VIEW newR1 
AS
SELECT * from OPENQUERY ([INSTANCE_NAME], 'select * from DbName.SchemaName.TableName')