Изменение свойств связанного сервера в SQL Server

Есть ли способ изменить свойства (имя продукта, источник данных, строку поставщика и т. Д.) Существующего связанного сервера? Когда я иду на экран свойств, все параметры отображаются серым цветом.

8 ответов

Решение

Я закончил тем, что создал новый связанный сервер и удалил старый. К сожалению, нет возможности редактировать существующий экземпляр

Вот команда.

EXEC master.dbo.sp_serveroption @server=N'<SERVERNAME>', @optname=N'name', @optvalue=N'<NEWNAME>'

Замените "SERVERNAME" текущим именем связанного сервера. Замените "NEWNAME" новым именем, которое вы хотите дать связанному серверу.

В SQL Server Management Studio щелкните правой кнопкой мыши на связанном сервере, выберите "Сценарий связанного сервера как", затем выберите "DROP and CREATE to", а затем "Окно нового редактора запросов". Теперь вы можете настроить любые параметры, которые вы хотите настроить в скрипте, а затем запустить его. Существующий связанный сервер будет удален, а новый создан.

Единственный вариант, который у вас есть, это использовать sp_setnetname. Вы можете использовать его для изменения источника данных связанного сервера (адресата), например:

DECLARE @name sysname = 'SRVRNAME', @datasource sysname = 'srvr.name.com';
EXECUTE sp_setnetname @server = @name, @netname = @datasource;

Мне удалось изменить имя связанного сервера, используя sp_serveroption с @optname=N'name'. Эта опция отсутствует в документации BOL по sp_serveroption.

Объединение различных ответов, а также чтение документации - это задокументировано только для работы с серверами, связанными с SQL, а не с альтернативными источниками данных:

select server_id, name, data_source from sys.servers where product = 'SQL Server'

DECLARE @oldName nvarchar(30) = 'oldSERVER', --must match current entry under sys.servers.name
@name sysname = 'newServer', 
@datasource sysname = 'newServer.DNSDomainName.com' -- can be a windows FDQN that is not SQL valid if needed for RPC cross domain resolution

/* Comment out this marker to perform update
EXEC master.dbo.sp_serveroption @server=@oldName, @optname=N'name', @optvalue=@name
EXECUTE sp_setnetname @server = @name, @netname = @datasource;

select server_id, name, data_source from sys.servers where product = 'SQL Server'
--*/

Проверьте sp_serveroption. Вот как в конечном итоге GUI сделает это в любом случае. Если изменение того, что вы пытались изменить, в конечном итоге не разрешено, вы должны получить осмысленное сообщение об ошибке из этой хранимой процедуры.

Мой опыт (я использую SQL Server 2016 для связи с экземпляром SQL Server 2012, и я хотел переименовать связанный сервер и изменить его цель), мне нужно было объединить ответы Xipooo и Джордана Паркера.

sp_serveroption переименовал связанный сервер, а sp_setnetname изменил цель связанного сервера.

Зайдите в инструменты администрирования запуска и откройте источники данных (odbc), затем нажмите на систему dsn, здесь вы найдете имя dsn связанного сервера. Отсюда вы можете редактировать свойства связанного сервера. Вы также можете проверить соединение.

Кишоре С.Г.

Другие вопросы по тегам