有什么方法可以更改现有链接服务器的属性(产品名称、数据源、提供程序字符串等)?当我进入属性屏幕时,所有选项都是灰色的。
9 回答
这是命令。
EXEC master.dbo.sp_serveroption @server=N'<SERVERNAME>', @optname=N'name', @optvalue=N'<NEWNAME>'
将“SERVERNAME”替换为链接服务器的当前名称。将“NEWNAME”替换为您要为链接服务器提供的新名称。
在 SQL Server management Studio 中,在链接服务器上单击鼠标右键,选择“将链接服务器编写为”,然后选择“DROP and CREATE to”,然后选择“New Query Editor Window”。您现在可以调整要在脚本中调整的任何设置,然后运行它。现有的链接服务器将被删除并创建一个新的。
您唯一的选择是使用sp_setnetname。您可以使用它来更改链接服务器(目标)的 data_source,例如:
DECLARE @name sysname = 'SRVRNAME', @datasource sysname = 'srvr.name.com';
EXECUTE sp_setnetname @server = @name, @netname = @datasource;
我能够使用带有@optname=N'name' 的sp_serveroption 更改链接服务器的名称。此选项似乎不在 sp_serveroption 的 BOL 文档中。
我最终创建了一个新的链接服务器并删除了旧的。不幸的是,无法编辑现有实例
各种响应的合并,以及阅读文档 - 这仅记录用于 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 和 Jordan Parker 的答案。
sp_serveroption 重命名了链接服务器,sp_setnetname 更改了链接服务器的目标。
转到启动管理工具并打开数据源(odbc)然后单击系统 dsn,在这里您将找到链接服务器的 dsn 名称。从这里您可以编辑链接服务器的属性。您还可以测试连接。
~ Kishore SG