Используя T-Sql, как я могу вставить из одной таблицы на удаленном сервере в другую таблицу на моем локальном сервере? - PullRequest
2 голосов
/ 23 декабря 2010

Учитывая удаленный сервер «Производство» (в настоящее время доступный через IP) и локальную базу данных «Разработка», как я могу запустить INSERT в «Разработка» из «Производство», используя T-SQL?

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

UPDATE:

T-SQL на самом деле не моя сумка. Я попробовал следующее (не зная, что я делаю):

EXEC sp_addlinkedserver 
    @server = N'20.0.0.1\SQLEXPRESS', 
    @srvproduct=N'SQL Server' ;

GO

EXEC sp_addlinkedsrvlogin '20.0.0.1\SQLEXPRESS', 'false', 
    'Domain\Administrator', 'sa', 'saPassword'

SELECT * FROM [20.0.0.1\SQLEXPRESS].[DatabaseName].[dbo].[Table]

И я получаю ошибку:

Ошибка входа пользователя ''. Пользователь не связано с доверенным SQL Подключение к серверу.

Ответы [ 5 ]

7 голосов
/ 23 декабря 2010

создайте связанный сервер , а затем используйте 4-компонентную запись

insert table
select <column names>
from LinkedserverName.DatabaseName.SchemaName.TableName

Вы также можете использовать OPENROWSET

Пример

insert table
SELECT a.*
FROM OPENROWSET('SQLNCLI', 'Server=Seattle1;Trusted_Connection=yes;',
     'SELECT GroupName, Name, DepartmentID
      FROM AdventureWorks2008R2.HumanResources.Department
      ORDER BY GroupName, Name') AS a;

попробуйте создать логин

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'20.0.0.1\SQLEXPRESS',
@useself=N'False',
@locallogin=NULL,
@rmtuser=N'sa',
@rmtpassword='saPassword'
1 голос
/ 23 декабря 2010

Посмотрите на RedGate инструменты, особенно. Сравнение данных SQL. Если это не вариант, вы должны посмотреть OPENDATASOURCE или OPENROWSET , чтобы получить доступ к удаленной базе данных.

1 голос
/ 23 декабря 2010

Вы можете определить сервер PROD как связанный сервер с блоком DEV и затем получить к нему доступ.Однако я думаю, что было бы проще получить резервную копию из PROD Box и восстановить ее в DEV или использовать SSIS для импорта схемы.

0 голосов
/ 23 декабря 2010

Использовать SSMS.Щелкните правой кнопкой мыши на целевой БД и выберите «Задачи», «Импорт данных».Вы сможете просматривать данные и делать преобразования визуально.Сохраните пакет в службах SSIS или запустите его сейчас.

0 голосов
/ 23 декабря 2010

Что ж, вы можете использовать связанный сервер, а затем использовать 4 имени части для объектов (см. BOL для настройки связанного сервера) Или вы можете использовать SSIS для настройки миграции данных и подключения к удаленному серверу. Или вы можете использовать OPENROWSET

Я бы, наверное, использовал SSIS, но я с ним уже знаком.

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