sp_setnetname (Transact-SQL)

Присваивает сетевым именам удаленных экземпляров SQL Server в представлении каталога sys.servers действительные сетевые имена их компьютеров. Эта процедура может быть использована для разрешения выполнения вызовов удаленных хранимых процедур тем компьютерам, сетевые имена которых содержат неверные идентификаторы SQL Server.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

sp_setnetname
@server = 'server', 
          @netname = 'network_name'

Аргументы

  • @server = 'server'
    Имя удаленного сервера в синтаксисе вызова удаленных хранимых процедур, написанных пользователем. В представлении каталога sys.servers должна существовать в точности одна строка для использования сервера с именем server. Аргумент server имеет тип sysname и не имеет значения по умолчанию.

  • @netname ='network_name'
    Сетевое имя компьютера, используемое при вызове удаленных хранимых процедур. Аргумент network_name имеет тип sysname и не имеет значения по умолчанию.

    Это имя должно совпадать с именем компьютера Microsoft Windows и может содержать символы, использование которых в качестве идентификаторов SQL Server запрещено.

Значения кодов возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Результирующие наборы

Нет

Замечания

Некоторые удаленные хранимые процедуры, обращающиеся к Windows-компьютерам, могут вызвать проблемы, если имя компьютера содержит недопустимые символы.

Так как связанные серверы размещены в одном пространстве имен, они не могут иметь одинаковое имя. Однако вместо указанного сервера можно определить как связанный сервер, так и удаленный, присваивая им различные имена и используя процедуру sp_setnetname для присвоения сетевого имени одного из них сетевому имени базового сервера.

--Assume sqlserv2 is actual name of SQL Server 
--database server
EXEC sp_addlinkedserver 'sqlserv2';
GO
EXEC sp_addserver 'rpcserv2';
GO
EXEC sp_setnetname 'rpcserv2', 'sqlserv2';
ПримечаниеПримечание

Использование процедуры sp_setnetname для переключения связанного сервера обратно на локальный сервер не поддерживается. Серверы, которые описаны таким образом, не могут участвовать в распределенной транзакции.

Разрешения

Выполнять данную хранимую процедуру могут члены предопределенных ролей сервера sysadmin и setupadmin.

Примеры

В следующем примере показана типичная административная последовательность, используемая в SQL Server для вызова удаленной хранимой процедуры.

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