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

ОБЛАСТЬ ПРИМЕНЕНИЯ ЭТОЙ СТАТЬИ: даSQL Server (начиная с 2008) нетБаза данных SQL Azure нетХранилище данных SQL Azure нетParallel Data Warehouse

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

Область применения: SQL Server (сSQL Server 2008 до текущей версии).

Topic link icon  Синтаксические обозначения в Transact-SQL

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

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

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

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

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

None

Некоторые удаленные хранимые процедуры, обращающиеся к 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';  
System_CAPS_ICON_note.jpg Примечание


С помощью 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;  

Компонент Database Engine хранимой процедуры (Transact-SQL)
sp_addlinkedserver (Transact-SQL)
sp_addserver (Transact-SQL)
Системные хранимые процедуры (Transact-SQL)