SQL Server копирует информацию таблицы между базами данных - PullRequest
3 голосов
/ 18 марта 2010

У меня есть скрипт, который я использую для копирования данных из таблицы в одной базе данных в таблицу в другой базе данных на том же экземпляре SQL Server. Сценарий прекрасно работает, когда я подключен к экземпляру SQL Server как сам, поскольку у меня есть доступ dbo к обеим базам данных. Проблема в том, что на клиентском SQL Server этого не произойдет. Они имеют отдельные логины для каждой базы данных (логины аутентификации SQL). Кто-нибудь знает, есть ли способ запустить скрипт в этих условиях. Сценарий будет делать что-то вроде.

use sourceDB
Insert targetDB.dbo.tblTest (id, test_name)
Select id, test_name from dbo.tblTest

Спасибо

Ответы [ 3 ]

1 голос
/ 18 марта 2010

Вы можете настроить связанный сервер:

http://www.databasejournal.com/features/mssql/article.php/3085211/Linked-Servers-on-MS-SQL-Part-1.htm

http://msdn.microsoft.com/en-us/library/ms190479.aspx

Затем вы можете ссылаться на связанный сервер из вашего скрипта.

1 голос
/ 18 марта 2010

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

0 голосов
/ 18 марта 2010

Немного повозился, и я заработал. Я добавил эту команду перед вставкой

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