Не удалось создать процедуру с использованием синонима - PullRequest
1 голос
/ 05 апреля 2019

У меня есть 2 базы данных на одном сервере с именем - [Test1] и [Test2]

[Test1] содержит таблицу [dbo]. [TablDb1]. [Test2] содержит таблицу [dbo]. [TablDb2].

Я создаю синоним [dbo]. [TablDb2] в базе данных [Test1], используя следующий код

   CREATE SYNONYM [dbo].[Tabl2Db2] FOR [Test2].[dbo].[Tabl2Db2]

теперь следующий запрос, выполненный в базе данных [Test1], возвращает строки обеих таблиц

 select * from [dbo].[TablDb1] inner join [dbo].[Tabl2Db2] on [dbo]. 
 [TablDb1].id=[dbo].[Tabl2Db2].did

Я пытался создать процедуру, используя приведенный выше запрос следующим образом-

  create procedure TestProcedure
  as
    select * from [dbo].[TablDb1] inner join [dbo].[Tabl2Db2] on [dbo]. 
    [TablDb1].id=[dbo].[Tabl2Db2].did

Но процедура создания всегда возвращает следующую ошибку

Не удалось найти сервер 'Test2' в sys.servers. Убедитесь, что правильно имя сервера было указано. При необходимости выполните хранимую процедуру sp_addlinkedserver для добавления сервера в sys.servers.

Какие-нибудь решения?

enter image description here

enter image description here

enter image description here

...