sp_addserver (Transact-SQL)

适用于:SQL Server

定义 SQL Server 的本地实例的名称。 重命名托管 SQL Server 的计算机时,用于sp_addserver通知 SQL Server 实例数据库引擎新的计算机名称。 必须在计算机上托管数据库引擎的所有实例上执行此过程。 无法更改数据库引擎的实例名称。 若要更改命名实例的实例名称,请安装具有所需名称的新实例,从旧实例分离数据库文件,将数据库附加到新实例,然后删除旧实例。 或者,你可以在客户端计算机上创建客户端别名名称,无需更改服务器计算机上的实例名称即可将连接重定向到其他服务器和实例名称或 服务器:端口 组合。

Transact-SQL 语法约定

语法

sp_addserver
    [ @server = ] N'server'
    [ , [ @local = ] 'LOCAL' ]
    [ , [ @duplicate_ok = ] 'duplicate_OK' ]
[ ; ]

参数

[ @server = ] N'server'

服务器的名称。 服务器名称必须是唯一的,并且遵循 Microsoft 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_OKNULL。 如果 指定了@duplicate_ok 并且正在添加的服务器名称已存在,则不会引发错误。 如果未使用命名参数, 则必须指定@local

返回代码值

0(成功)或 1(失败)。

注解

若要设置或清除服务器选项,请使用 sp_serveroption

sp_addserver 不能在用户定义的事务中使用。

用于 sp_addserver 添加远程服务器已停止使用。 改用 sp_addlinkedserver

使用可用性组或复制时,用于 sp_addserver 更改本地服务器名称可能会导致意外的影响或不支持的配置。

权限

要求具有 setupadmin 固定服务器角色的成员身份。

示例

以下示例将承载 SQL Server 的计算机名称数据库引擎项更改为 ACCOUNTS

EXEC sp_addserver 'ACCOUNTS', 'local';