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

Как выбрать данные таблицы из другой базы данных в SQL Server?

Предположим, у меня есть база данных с именем testdb на сервере test. Также у меня есть база данных с именем proddb на сервере prod. Теперь я хочу выбрать данные таблицы testdb из базы данных proddb.

Как это сделать в SQL Server?

Кроме того, я могу сделать это, используя ссылку базы данных в oracle. Но как это сделать в SQL Server?

4b9b3361

Ответ 1

Вам нужен sp_addlinkedserver()

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

Пример:

exec sp_addlinkedserver @server = 'test'

затем

select * from [server].[database].[schema].[table]

В вашем примере:

select * from [test].[testdb].[dbo].[table]

Ответ 2

Я использовал это раньше, чтобы настроить запрос на другой сервер и db через связанный сервер:

EXEC sp_addlinkedserver @server='PWA_ProjectServer', @srvproduct='',
@provider='SQLOLEDB', @datasrc='SERVERNAME\PWA_ProjectServer'

в комментарии выше:

select * from [server].[database].[schema].[table]

например.

select top 6 * from [PWA_ProjectServer].[PWA_ProjectServer_Reporting].[dbo].[MSP_AdminStatus]

Ответ 3

Чтобы выполнить кросс-серверный запрос, проверьте системную хранимую процедуру: sp_addlinkedserver в файлах справки.

После соединения сервера вы можете запустить запрос против него.

Ответ 4

В SQL Server 2012 и выше вам не нужно создавать ссылку. Вы можете выполнить непосредственно

SELECT * FROM [TARGET_DATABASE].dbo.[TABLE] AS _TARGET

Я не знаю, работают ли предыдущие версии SQL Server