Freigeben über


sp_setnetname (Transact-SQL)

Gilt für: SQL Server

Legt die Netzwerknamen sys.servers auf die tatsächlichen Netzwerkcomputernamen für Remoteinstanzen von SQL Server fest. Diese Prozedur kann verwendet werden, um die Ausführung von remote gespeicherten Prozeduraufrufen an Computer zu ermöglichen, die Netzwerknamen enthalten, die SQL Server-IDs enthalten, die ungültig sind.

Transact-SQL-Syntaxkonventionen

Syntax

sp_setnetname
    [ @server = ] N'server'
    , [ @netname = ] N'netname'
[ ; ]

Argumente

[ @server = ] N'server'

Der Name des Remoteservers, auf den in der Syntax des remotecodierten remote gespeicherten Prozeduraufrufs verwiesen wird. @server ist "sysname" ohne Standard. Genau eine Zeile in sys.servers muss bereits vorhanden sein, um diese @server zu verwenden.

[ @netname = ] N'netname'

Der Netzwerkname des Computers, an den remote gespeicherte Prozeduraufrufe ausgeführt werden. @netname ist "sysname" ohne Standard.

Dieser Name muss mit dem Microsoft Windows-Computernamen übereinstimmen, und der Name kann Zeichen enthalten, die in SQL Server-IDs nicht zulässig sind.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Resultset

Keine.

Hinweise

Einige Aufrufe von remote gespeicherten Prozeduren an Windows-Computer können Probleme verursachen, wenn der Computername Bezeichner enthält, die ungültig sind.

Da sich verknüpfte Server und Remoteserver im selben Namespace befinden, können sie nicht denselben Namen haben. Sie können jedoch sowohl einen verknüpften Server als auch einen Remoteserver für einen angegebenen Server definieren, indem Sie verschiedene Namen zuweisen und sp_setnetname den Netzwerknamen eines dieser Server auf den Netzwerknamen des zugrunde liegenden Servers festlegen.

In diesem Beispiel wird angenommen sqlserv2 , dass es sich um den tatsächlichen Namen der SQL Server-Instanz handelt.

EXEC sp_addlinkedserver 'sqlserv2';
GO
EXEC sp_addserver 'rpcserv2';
GO
EXEC sp_setnetname 'rpcserv2', 'sqlserv2';

Hinweis

Wird sp_setnetname verwendet, um auf einen verknüpften Server zurück auf den lokalen Server zu verweisen, wird nicht unterstützt. Server, auf die auf diese Weise verwiesen wird, können nicht an einer verteilten Transaktion teilnehmen.

Berechtigungen

Erfordert die Mitgliedschaft in den festen Serverrollen "sysadmin " und "setupadmin ".

Beispiele

Das folgende Beispiel zeigt eine typische administrative Sequenz, die auf SQL Server zum Ausgeben des Remotespeicherungsprozeduraufrufs verwendet wird.

USE master;
GO
EXEC sp_addserver 'Win_1';
EXEC sp_setnetname 'Win_1', 'Win-1';
EXEC Win_1.master.dbo.sp_who;