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


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

Область применения: SQL Server

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

Соглашения о синтаксисе Transact-SQL

Синтаксис

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

Аргументы

[ @server = ] N'server'

Имя удаленного сервера, на который ссылается синтаксис вызова удаленной хранимой процедуры, закодированный пользователем. @server — sysname, без значения по умолчанию. Для использования этой @server уже должна существовать одна строкаsys.servers.

[ @netname = ] N'netname'

Сетевое имя компьютера, к которому выполняются удаленные вызовы хранимой процедуры. @netname — sysname без значения по умолчанию.

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

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

0 (успешно) или 1 (сбой).

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

Нет.

Замечания

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

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

В этом примере предполагается sqlserv2 фактическое имя экземпляра SQL 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;