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

Запрос связанного 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'.

4b9b3361

Ответ 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]'
)