sp_addserver (Transact-SQL)

适用范围:SQL Server

定义 SQL Server 的本地实例的名称。 重命名托管 SQL Server 的计算机时,用于sp_addserver通知 SQL Server 实例数据库引擎新的计算机名称。 必须在计算机上托管数据库引擎的所有实例上执行此过程。

无法更改数据库引擎的实例名称。 若要更改命名实例的实例名称,请安装具有所需名称的新实例,从旧实例分离数据库文件,将数据库附加到新实例,然后删除旧实例。 或者,可以在客户端计算机上创建客户端别名,将连接重定向到不同的服务器和实例名称或 <server>:<port> 组合,而无需更改服务器计算机上的实例名称。

Transact-SQL 语法约定

语法

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_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';