sp_setnetname (Transact-SQL)

sys.servers 中的網路名稱設為 SQL Server 遠端執行個體的實際網路電腦名稱。您可以使用這個程序,以便執行對於網路名稱含有無效 SQL Server 識別碼之電腦的遠端預存程序呼叫。

主題連結圖示Transact-SQL 語法慣例

語法

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;