sp_setnetname (Transact-SQL)
sys.servers 内のネットワーク名を、SQL Server 2005 のリモート インスタンスの実際のネットワーク コンピュータ名に設定します。このプロシージャを使用すると、ネットワーク名に無効な SQL Server 識別子が含まれるコンピュータに対して、リモート ストアド プロシージャ呼び出しを実行できます。
構文
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 の識別子では使用できない文字を含めることができます。
結果セット
なし
解説
コンピュータ名に無効な識別子が含まれている場合は、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 固定サーバー ロールのメンバシップが必要です。
戻り値
0 (成功) または 1 (失敗)
例
次の例では、リモート ストアド プロシージャ呼び出しを実行するために 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)