sp_setnetname (Transact-SQL)

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

トピック リンク アイコン Transact-SQL 構文表記規則

構文

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

引数

  • @server = ' server '
    ユーザーが作成したリモート ストアド プロシージャ呼び出しの構文で参照しているリモート サーバーの名前を指定します。 この server を使用するには、既に sys.servers に 1 行のデータが含まれている必要があります。 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;

関連項目

参照

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

sp_addlinkedserver (Transact-SQL)

sp_addserver (Transact-SQL)

システム ストアド プロシージャ (Transact-SQL)