sp_setnetname (Transact-SQL)

適用対象:SQL 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_namesysname で、既定値はありません。

この名前は 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';  

Note

sp_setnetnameを使用してリンク サーバーをローカル サーバーに戻す方法はサポートされていません。 この方法で参照されるサーバーは、分散トランザクションに参加できません。

アクセス許可

sysadminsetupadmin 固定サーバー ロールのメンバーシップが必要です。

次の例は、リモート ストアド プロシージャ呼び出しを発行するために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)