Compartir por


sp_setnetname (Transact-SQL)

Se aplica a: SQL Server

Establece los nombres de red en sys.servers sus nombres de equipo de red reales para instancias remotas de SQL Server. Este procedimiento se puede usar para habilitar la ejecución de llamadas a procedimientos almacenados remotos en equipos que tienen nombres de red que contienen identificadores de SQL Server que no son válidos.

Convenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

[ @server = ] N'server'

Nombre del servidor remoto al que se hace referencia en la sintaxis de llamada a procedimiento almacenado remoto codificada por el usuario. @server es sysname, sin ningún valor predeterminado. Exactamente una fila de sys.servers debe existir para usar este @server.

[ @netname = ] N'netname'

Nombre de red del equipo al que se realizan llamadas a procedimientos almacenados remotos. @netname es sysname, sin ningún valor predeterminado.

Este nombre debe coincidir con el nombre del equipo Windows y el nombre puede incluir caracteres que no están permitidos en identificadores de SQL Server.

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Conjunto de resultados

Ninguno.

Comentarios

Algunas llamadas a procedimientos almacenados remotos a equipos Windows pueden surgir problemas si el nombre del equipo contiene identificadores que no son válidos.

Dado que los servidores vinculados y los servidores remotos residen en el mismo espacio de nombres, no pueden tener el mismo nombre. Sin embargo, puede definir un servidor vinculado y un servidor remoto en un servidor especificado asignando nombres diferentes y usando sp_setnetname para establecer el nombre de red de uno de ellos en el nombre de red del servidor subyacente.

En este ejemplo, Supongamos sqlserv2 que es el nombre real de la instancia de SQL Server.

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

Nota:

No se admite el uso sp_setnetname de un servidor vinculado para volver a apuntar al servidor local. Los servidores a los que se hace referencia de esta manera no pueden participar en una transacción distribuida.

Permisos

Requiere la pertenencia a los roles fijos de servidor sysadmin y setupadmin .

Ejemplos

En el ejemplo siguiente se muestra una secuencia administrativa típica que se usa en SQL Server para emitir la llamada a procedimiento almacenado remoto.

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