Запрос связанного SQL-сервера
Я добавил связанный сервер, который отображается в списке связанных серверов, но когда я его запрашиваю, он выдает ошибку с именем сервера db.
EXEC sp_helpserver
EXEC sp_addlinkedserver 'aa-db-dev01'
Select * from openquery('aa-db-dev01','Select * from TestDB.dbo.users')
Msg 102, уровень 15, состояние 1, строка 1
Неверный синтаксис рядом с 'aa-db-dev01'.
Ответы
Ответ 1
SELECT * FROM [server].[database].[schema].[table]
Это работает для меня. SSMS intellisense может все же подчеркнуть это как синтаксическую ошибку, но она должна работать, если ваш связанный сервер настроен, и ваш запрос в противном случае правильный.
Ответ 2
Вам нужно удалить метки кавычек вокруг имени связанного сервера. Это должно быть так:
Выберите * из openquery (aa-db-dev01, 'Select * from TestDB.dbo.users')
Ответ 3
Вы можете использовать:
SELECT * FROM [aa-db-dev01].[TestDB].[dbo].[users];
Ответ 4
try Select * from openquery("aa-db-dev01",'Select * from users')
, соединение с базой данных должно быть определено в конфигурации связанного сервера
Ответ 5
Я использую открытый запрос для выполнения этой задачи следующим образом:
select top 1 *
INTO [DATABASE_TO_INSERT_INTO].[dbo].[TABLE_TO_SELECT_INTO]
from openquery(
[LINKED_SERVER_NAME],
'select * from [DATABASE_ON_LINKED_SERVER].[dbo].[TABLE_TO_SELECT_FROM]'
)
В приведенном выше примере используется открытый запрос для выбора данных из базы данных на связанном сервере в базу данных по вашему выбору.
Примечание. Для полноты ссылки вы можете выполнить простой выбор, например:
select top 1 * from openquery(
[LINKED_SERVER_NAME],
'select * from [DATABASE_ON_LINKED_SERVER].[dbo].[TABLE_TO_SELECT_FROM]'
)