Я пытаюсь создать связанный сервер на экземпляре SQL Server 2014, servername\instancename
используя следующий вызов:
EXEC master.dbo.sp_addlinkedserver
@server = N'servername\instancename',
@srvproduct=N'SQL Server'
Я получаю ошибку:
Msg 15028, Level 16, State 1, Procedure sp_addlinkedserver, Line 82
The server 'servername\instancename' already exists.
Это прекрасно работает в SQL Server 2005, и в соответствии с MSDN ,
Связанный сервер не обязательно должен быть другим экземпляром SQL Server,
Так что я не уверен, что изменилось в последних версиях, которые запрещают это. Использование пользовательского интерфейса создает похожее сообщение:
Вы не можете создать локальный SQL Server как связанный сервер.
Я понимаю, что запрашивать это странно, но поддерживать некоторый унаследованный код, который работал в 2005 году (и раньше использовался в отдельных случаях). В документации говорится, что это должно работать, но это не так. Есть ли способ заставить это работать в 2014 году, или мне придется изменить базовый код?
Ответы:
Оказывается, я смог заставить его работать с другими параметрами.
источник
Вместо того, чтобы иметь дело со ссылками на связанный сервер внутри вашего кода, вы можете рассмотреть возможность однократного вложения кода, связанного с использованием синонима в любом месте, где в данный момент у вас есть связанный сервер.
Так что вместо:
У вас есть синоним:
Тогда ваш код просто:
Затем, если у вас есть объекты, перемещенные на разные серверы, вы просто удаляете и заново создаете синонимы, и вам не нужно трогать код:
источник
Запустите эту команду - вы сможете использовать локальный сервер в качестве связанного сервера без необходимости изменения кода
источник