sp_setnetname (Transact-SQL)

適用対象:yesSQL Server (サポートされているすべてのバージョン)

sys.servers のネットワーク名を、 のリモート インスタンスの実際のネットワーク コンピューター名に設定SQL Server。 このプロシージャを使用すると、無効な識別子を含むネットワーク名を持つコンピューターに対するリモート SQL Server呼び出しを実行できます。

Topic link iconTransact-SQL 構文表記規則

構文

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

引数

@server = 'server'
ユーザーが作成したリモート ストアド プロシージャ呼び出しの構文で参照しているリモート サーバーの名前を指定します。 このサーバーを使用するには 、sys.servers の 1 行が既に存在している必要 がありますserver のデータ型は sysnameで、既定値はありません。

@netname ='network_name'
リモート ストアド プロシージャの呼び出しが行われたコンピューターのネットワーク名を指定します。 network_nameは sysname で、既定値はありません。

この名前は、Microsoft Windows コンピューター名と一致する必要があります。また、この名前には、識別子で許可されていない文字SQL Serverがあります。

リターン コードの値

0 (成功) または 1 (失敗)

結果セット

なし

解説

コンピューター名に無効な識別子Windows場合、コンピューターに対するリモート ストアド プロシージャ呼び出しの中には、問題が発生する場合があります。

リンク サーバーとリモート サーバーは同じ名前空間に存在するため、同じ名前にはできません。 ただし、指定したサーバーに対してリンク サーバーとリモート サーバーの両方を定義するには、異なる名前を割り当て、sp_setnetname を使用して、その 1 つのネットワーク名を基になるサーバーのネットワーク名に設定します。

--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';  

Note

この 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;  

参照

データベース エンジン ストアド プロシージャ (Transact-SQL)
sp_addlinkedserver (Transact-SQL)
sp_addserver (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)