Хранимая процедура sp_setnetname (Transact-SQL)
Применимо к: SQL Server (все поддерживаемые версии)
Устанавливает сетевые имена в sys. Servers на реальные имена сетевых компьютеров для удаленных экземпляров SQL Server . Эта процедура может быть использована для разрешения выполнения вызовов удаленных хранимых процедур тем компьютерам, сетевые имена которых содержат неверные идентификаторы SQL Server.
Синтаксические обозначения в Transact-SQL
Синтаксис
sp_setnetname
@server = 'server',
@netname = 'network_name'
Аргументы
@server = ' сервер '
Имя удаленного сервера в синтаксисе вызова удаленных хранимых процедур, написанных пользователем. Для использования этого сервера уже должна существовать ровно одна строка в sys. Servers. Аргумент server имеет тип sysname и не имеет значения по умолчанию.
@netname = ' network_name '
Сетевое имя компьютера, на который направляются вызовы удаленных хранимых процедур. Аргумент network_name имеет тип sysname и не имеет значения по умолчанию.
Это имя должно совпадать с именем компьютера Microsoft Windows и может содержать символы, использование которых в качестве идентификаторов SQL Server запрещено.
Значения кода возврата
0 (успешное завершение) или 1 (неуспешное завершение)
Результирующие наборы
None
Remarks
Некоторые удаленные хранимые процедуры, обращающиеся к 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)