Я собираюсь обновить SQL Server 2012 экземпляра SQL Server 2014.Update sys.servers после переименования хоста сервера SQL
Я клонировал хост для Windows VM и переименовал его из foo-2012
в foo-2014
. При перезагрузке экземпляр SQL Server заметил это как обновленное собственное имя, поэтому теперь я могу войти в него как foo-2014
. Все хорошо.
К сожалению (одинарный) запись в sys.servers
еще foo-2012
, что означает, что запуск
SELECT *
FROM [foo-2012].[barDB].[dbo].tFooBarTable
терпит неудачу с:
Не удалось найти сервер 'RW-DB-2014' в sys.servers , Убедитесь, что указано правильное имя сервера. Если необходимо, выполните хранимую процедуру sp_addlinkedserver, чтобы добавить сервер в sys.servers.
Изобразительное.
Я запустил EXEC sp_addlinkedserver 'foo-2014', 'SQL Server'
и получил запись.
Но теперь новая запись имеет isLinked=1
(тогда как существующая запись имеет isLinked=0
).
Documentation указывает, что этот параметр имеет значение (особенно в мое приложение, которое имеет очень сильные мнения о Distr.Trans. :()
Я не могу редактировать/добавлять/изменять sys.servers непосредственно. Любая попытка сделать это дает:
СПЕЦИАЛЬНАЯ обновления системных каталогов не допускаются
я удалить новую запись (EXEC sp_dropserver 'foo-2014'
), который преуспевает, и попытаться использовать EXEC sp_addserver 'foo-2014', 'local'
которых г. ОКЛАДЫ
Сервер 'Foo-2014' уже существует
Сразу повторный запуск падение затем сообщает
Сервером 'RW-DB-2014' не существует. Используйте sp_helpserver для отображения доступных серверов.
Как исправить это?
Я голосовал, чтобы перенести этот вопрос DBA.SE – TheGameiswar