Запрос на связанный сервер не работает должным образом - PullRequest
1 голос
/ 24 января 2012

Как создать связанный запрос к серверу

Имя сервера1 Server, имя таблицы Employee Имя сервера2 RAPAN, имя таблицы Venus

Я хочу выбрать таблицу venus (server2) через server1.

Как это сделать с помощью запроса

Пробный запрос

EXEC sp_addlinkedserver 
   @server = 'server', 
   @srvproduct = '',
   @provider = 'SQLOLEDB', 
   @datasrc = 'RAPAN'
GO

Запрос выполнен успешно, но когда он пытается select * from venus через сервер1, он выдает ошибку как invalid object name

Что не так в моем запросе ...

1 Ответ

1 голос
/ 24 января 2012
  • Вы должны добавить сопоставление имени входа на этот сервер
  • Вы должны выполнить запрос с полным соглашением об именах, например SELECT * FROM server1.RAPAN.dbo.venus

Чтобы добавить использование связанного сервера ( ииграть с опциями на ваши потребности ):

EXEC sys.sp_addlinkedserver @server = 'RAPAN', @srvproduct = 'SQL Server'

Установить дополнительные параметры

EXEC sys.sp_serveroption @server = 'RAPAN', @optname = 'collation compatible', @optvalue = 'On'
EXEC sys.sp_serveroption @server = 'RAPAN', @optname = 'data access', @optvalue = 'On'
EXEC sys.sp_serveroption @server = 'RAPAN', @optname = 'lazy schema validation', @optvalue = 'On' 
EXEC sys.sp_serveroption @server = 'RAPAN', @optname = 'rpc', @optvalue = 'On'
EXEC sys.sp_serveroption @server = 'RAPAN', @optname = 'rpc out', @optvalue = 'On'

Добавить логин (И читать дальше)

EXEC sys.sp_addlinkedsrvlogin @rmtsrvname = 'RAPAN'
...