Transact-SQL 参考

sp_setnetname

sysservers 中的网络名称设置为用于远程 Microsoft® SQL Server™ 实例的实际网络计算机名。该过程可用于启用对计算机(其网络名称中包含无效的 SQL Server 标识符)的远程存储过程调用执行。

语法

sp_setnetname @server = 'server',
    @netname =
'network_name'

参数

@server = 'server'

是在用户编码的远程存储过程调用语法中引用的远程服务器名。sysservers 中必须正好已有一行要使用该 serverserver 的数据类型是 sysname,没有默认设置。

@netname = 'network_name'

是对其执行远程存储过程调用的计算机网络名称。network_name 的数据类型是 sysname,没有默认设置。

该名称必须与 Microsoft Windows NT® 计算机名匹配,并且可以包含 SQL Server 标识符中不允许的字符。

如果 SQL Server 计算机中定义了与 network_name 匹配的 DB-Library 别名,则该别名中的连接字符串信息用于连接到远程 SQL Server。

返回代码值

0(成功)或 1(失败)

结果集

注释

如果计算机名包含无效的标识符,对 Windows NT 计算机的一些远程存储过程调用则可能遇到问题。使用该过程区别 sysservers.srvnamesysservers.srvnetname 之间的值。

因为链接服务器和远程服务器驻留在相同的命名空间内,所以它们的名称不能相同。不过,通过指派不同的名称并使用 sp_setnetname 将其中一台服务器的网络名称设置为基础服务器的网络名称,则可以在给定的服务器上同时定义链接服务器和远程服务器。

--Assume sqlserv2 is actual name of SQL Server 
--database server
EXEC sp_addlinkedserver 'sqlserv2'
GO
EXEC sp_addserver 'rpcserv2'
GO
EXEC sp_setnetname 'rpcserv2', 'sqlserv2'

说明  不支持使用 sp_setnetname 将链接服务器指回本地服务器。以这种方式引用的服务器不能参与分布式事务。

权限

只有 sysadminsetupadmin 固定服务器角色的成员才能执行此过程。

示例

下例显示在 SQL Server 上发出远程存储过程调用所使用的典型管理序列。

USE master
EXEC sp_addserver 'Win_NT1'
EXEC sp_setnetname 'Win_NT1','Win-NT1'
EXEC Win_NT1.master.dbo.sp_who 

请参见

sp_addlinkedserver

sp_addserver

系统存储过程