sp_addserver (Transact-SQL)
Applies to: SQL Server
Defines the name of the local instance of SQL Server. When the computer hosting SQL Server is renamed, use sp_addserver
to inform the instance of the SQL Server Database Engine of the new computer name. This procedure must be executed on all instances of the Database Engine hosted on the computer.
The instance name of the Database Engine can't be changed. To change the instance name of a named instance, install a new instance with the desired name, detach the database files from old instance, attach the databases to the new instance, and drop the old instance. Alternatively, you can create a client alias name on the client computer, redirecting the connection to different server and instance name or <server>:<port>
combination without changing the name of the instance on the server computer.
Transact-SQL syntax conventions
Syntax
sp_addserver
[ @server = ] N'server'
[ , [ @local = ] 'LOCAL' ]
[ , [ @duplicate_ok = ] 'duplicate_OK' ]
[ ; ]
Arguments
[ @server = ] N'server'
The name of the server. Server names must be unique and follow the rules for Windows computer names, although spaces aren't allowed. @server is sysname, with no default.
When multiple instances of SQL Server are installed on a computer, an instance operates as if it's on a separate server. Specify a named instance by referring to @server as <servername>\<instancename>
.
[ @local = ] 'LOCAL'
Specifies that the server is being added as a local server. @local is varchar(10), with a default of NULL
. Specifying @local as LOCAL
defines @server as the name of the local server, and causes the @@SERVERNAME
function to return the value of @server.
SQL Server Setup sets this variable to the computer name during installation. By default, the computer name is the way users connect to an instance of SQL Server without requiring additional configuration.
The local definition takes effect only after the Database Engine is restarted. Only one local server can be defined in each instance of the Database Engine.
[ @duplicate_ok = ] 'duplicate_OK'
Specifies whether a duplicate server name is allowed. @duplicate_ok is varchar(13), with a default of NULL
. @duplicate_ok can only have the value duplicate_OK
or NULL
. If @duplicate_ok is specified and the server name that is being added already exists, no error is raised. If named parameters aren't used, @local must be specified.
Return code values
0
(success) or 1
(failure).
Remarks
To set or clear server options, use sp_serveroption
.
sp_addserver
can't be used inside a user-defined transaction.
Using sp_addserver
to add a remote server is discontinued. Use sp_addlinkedserver instead.
Using sp_addserver
to change the local server name might cause undesired effects or unsupported configurations when using availability groups or Replication.
Permissions
Requires membership in the setupadmin fixed server role.
Examples
The following example changes the Database Engine entry for the name of the computer hosting SQL Server to ACCOUNTS
.
EXEC sp_addserver 'ACCOUNTS', 'local';