sp_addserver (Transact-SQL)
适用范围:SQL Server
定义 SQL Server 的本地实例的名称。 重命名托管 SQL Server 的计算机时,用于sp_addserver
通知 SQL Server 实例数据库引擎新的计算机名称。 必须在计算机上托管数据库引擎的所有实例上执行此过程。
无法更改数据库引擎的实例名称。 若要更改命名实例的实例名称,请安装具有所需名称的新实例,从旧实例分离数据库文件,将数据库附加到新实例,然后删除旧实例。 或者,可以在客户端计算机上创建客户端别名,将连接重定向到不同的服务器和实例名称或 <server>:<port>
组合,而无需更改服务器计算机上的实例名称。
语法
sp_addserver
[ @server = ] N'server'
[ , [ @local = ] 'LOCAL' ]
[ , [ @duplicate_ok = ] 'duplicate_OK' ]
[ ; ]
参数
[ @server = ] N'server'
服务器的名称。 服务器名称必须是唯一的,并且遵循 Windows 计算机名称的规则,尽管不允许空格。 @server为 sysname,无默认值。
在计算机上安装 SQL Server 的多个实例时,实例将像在单独的服务器上一样运行。 通过将@server引用为<servername>\<instancename>
指定命名实例。
[ @local = ] 'LOCAL'
指定将服务器添加为本地服务器。 @local为 varchar(10),默认值为 NULL
. 将@local指定为LOCAL
@server作为本地服务器的名称,并导致@@SERVERNAME
函数返回@server的值。
SQL Server 安装程序在安装过程中将此变量设置为计算机名称。 默认情况下,计算机名称是用户连接到 SQL Server 实例的方式,无需其他配置。
本地定义仅在重启数据库引擎后生效。 数据库引擎的每个实例中只能定义一个本地服务器。
[ @duplicate_ok = ] 'duplicate_OK'
指定是否允许重复的服务器名。 @duplicate_ok为 varchar(13),默认值为 NULL
. @duplicate_ok只能具有值duplicate_OK
或 NULL
。 如果 指定了@duplicate_ok 并且正在添加的服务器名称已存在,则不会引发错误。 如果未使用命名参数, 则必须指定@local 。
返回代码值
0
(成功)或 1
(失败)。
注解
若要设置或清除服务器选项,请使用 sp_serveroption
。
sp_addserver
不能在用户定义的事务中使用。
用于 sp_addserver
添加远程服务器已停止使用。 改用 sp_addlinkedserver 。
使用可用性组或复制时,用于 sp_addserver
更改本地服务器名称可能会导致意外的影响或不支持的配置。
权限
要求具有 setupadmin 固定服务器角色的成员身份。
示例
以下示例将承载 SQL Server 的计算机名称数据库引擎项更改为 ACCOUNTS
。
EXEC sp_addserver 'ACCOUNTS', 'local';