Изменение свойств связанного сервера в 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 связанного сервера. Отсюда вы можете редактировать свойства связанного сервера. Вы также можете проверить соединение.
Кишоре С.Г.