AkhileshKamate Ответов: 1

Как получить данные с связанного сервера SQL server?


Is this a correct syntax using linked db servers:


Что я уже пробовал:

select foo.id 
from databaseserver1.db1.table1 foo, 
     databaseserver2.db1.table1 bar 
where foo.name=bar.name

Richard MacCutchan

А что случилось, когда вы попробовали?

W∴ Balboos, GHB

Вы делали онлайн-поиск, чтобы узнать правильный синтаксис для доступа к связанному серверу?

1 Ответов

Рейтинг:
9

Richard Deeming

Нет. Для связанного сервера необходимо использовать имя из четырех частей:

[Server].[Database].[Schema].[Object]

Предполагая, что ваши таблицы находятся по умолчанию dbo схема, ваш запрос должен быть:
select foo.id 
from databaseserver1.db1.dbo.table1 foo, 
     databaseserver2.db1.dbo.table1 bar 
where foo.name=bar.name

Вы также должны избегать использования старого синтаксиса внутреннего соединения и вместо этого использовать синтаксис ANSI:
select foo.id 
from databaseserver1.db1.dbo.table1 foo
     INNER JOIN databaseserver2.db1.dbo.table1 bar 
     ON foo.name=bar.name


AkhileshKamate

Огромное спасибо