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,沒有預設值。 中 sys.servers 只有一個數據列必須已經存在,才能使用此 @server

[ @netname = ] N'netname'

遠端預存程式呼叫的電腦網路名稱。 @netname為 sysname,沒有預設值。

此名稱必須符合 Microsoft 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;