sp_setnetname (Transact-SQL)
適用対象:SQL Server (サポートされているすべてのバージョン)
sys.servers のネットワーク名を、 のリモート インスタンスの実際のネットワーク コンピューター名に設定SQL Server。 このプロシージャを使用すると、無効な識別子を含むネットワーク名を持つコンピューターに対するリモート SQL Server呼び出しを実行できます。
構文
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)