sp_setnetname (Transact-SQL)
將 sys.servers 中的網路名稱設為 SQL Server 遠端執行個體的實際網路電腦名稱。您可以使用這個程序,以便執行對於網路名稱含有無效 SQL Server 識別碼之電腦的遠端預存程序呼叫。
語法
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;