Freigeben über


sp_addserver (Transact-SQL)

Gilt für: SQL Server

Definiert den Namen der lokalen Instanz von SQL Server. Wenn der Computer, auf dem SQL Server gehostet wird, umbenannt wird, wird die sp_addserver Instanz des SQL Server-Datenbank-Engine des neuen Computernamens informiert. Diese Prozedur muss auf allen Instanzen des auf dem Computer gehosteten Datenbank-Engine ausgeführt werden.

Der Instanzname des Datenbank-Engine kann nicht geändert werden. Um den Instanznamen einer benannten Instanz zu ändern, installieren Sie eine neue Instanz mit dem gewünschten Namen, trennen Sie die Datenbankdateien von der alten Instanz, fügen Sie die Datenbanken an die neue Instanz an, und legen Sie die alte Instanz ab. Alternativ können Sie einen Clientaliasnamen auf dem Clientcomputer erstellen und die Verbindung zu verschiedenen Server- und Instanznamen oder <server>:<port> Kombinationen umleiten, ohne den Namen der Instanz auf dem Servercomputer zu ändern.

Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

[ @server = ] N'server'

Name des Servers Servernamen müssen eindeutig sein und den Regeln für Windows-Computernamen entsprechen, obwohl Leerzeichen nicht zulässig sind. @server ist "sysname" ohne Standard.

Wenn mehrere Instanzen von SQL Server auf einem Computer installiert sind, funktioniert eine Instanz so, als ob sie sich auf einem separaten Server befindet. Geben Sie eine benannte Instanz an, indem Sie auf @server als <servername>\<instancename>.

[ @local = ] 'LOCAL'

Gibt an, dass der Server als lokaler Server hinzugefügt wird. @local ist varchar(10) mit einem Standardwert von NULL. Wenn Sie @local angeben, wird LOCAL @server als Name des lokalen Servers definiert und bewirkt, dass die @@SERVERNAME Funktion den Wert von @server zurückgibt.

Sql Server Setup legt diese Variable während der Installation auf den Computernamen fest. Standardmäßig ist der Computername die Art und Weise, wie Benutzer eine Verbindung mit einer Instanz von SQL Server herstellen, ohne dass eine zusätzliche Konfiguration erforderlich ist.

Die lokale Definition wird erst wirksam, nachdem die Datenbank-Engine neu gestartet wurde. In jeder Instanz des Datenbank-Engine kann nur ein lokaler Server definiert werden.

[ @duplicate_ok = ] 'duplicate_OK'

Gibt an, ob ein doppelter Servername zulässig ist. @duplicate_ok ist varchar(13) mit einem Standardwert von NULL. @duplicate_ok kann nur den Wert duplicate_OK oder NULL. Wenn @duplicate_ok angegeben ist und der Servername, der hinzugefügt wird, bereits vorhanden ist, wird kein Fehler ausgelöst. Wenn benannte Parameter nicht verwendet werden, muss @local angegeben werden.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Hinweise

Verwenden Sie sp_serveroptionzum Festlegen oder Löschen von Serveroptionen .

sp_addserver kann nicht innerhalb einer benutzerdefinierten Transaktion verwendet werden.

Die Verwendung sp_addserver zum Hinzufügen eines Remoteservers wird nicht mehr unterstützt. Verwenden Sie stattdessen sp_addlinkedserver .

Die Verwendung sp_addserver zum Ändern des lokalen Servernamens kann zu unerwünschten Effekten oder nicht unterstützten Konfigurationen bei Verwendung von Verfügbarkeitsgruppen oder Replikation führen.

Berechtigungen

Erfordert die Mitgliedschaft in der festen Serverrolle setupadmin .

Beispiele

Im folgenden Beispiel wird der Datenbank-Engine Eintrag für den Namen des Computers geändert, auf dem SQL Server ACCOUNTSgehostet wird.

EXEC sp_addserver 'ACCOUNTS', 'local';