sp_setnetname (Transact-SQL)
適用於:SQL Server
將中的 sys.servers
網路名稱設定為 SQL Server 遠端實例的實際網路電腦名稱。 此程式可用來對包含無效 SQL Server 識別碼之電腦執行遠端預存程式呼叫。
語法
sp_setnetname
[ @server = ] N'server'
, [ @netname = ] N'netname'
[ ; ]
引數
[ @server = ] N'server'
用戶編碼遠端預存過程調用語法中所參考的遠端伺服器名稱。 @server為 sysname,沒有預設值。 中 sys.servers
只有一個數據列必須已經存在,才能使用此 @server。
[ @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
將連結的伺服器指向本地伺服器。 以這種方式參考的伺服器無法參與分散式交易。
權限
需要系統管理員和 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;