Поделиться через


Хранимая процедура sp_setnetname (Transact-SQL)

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

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии).

Значок ссылки на раздел Cинтаксические обозначения в 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;

См. также

Справочник

Хранимые процедуры ядра СУБД (Transact-SQL)

sp_addlinkedserver (Transact-SQL)

sp_addserver (Transact-SQL)

Системные хранимые процедуры (Transact-SQL)