次の方法で共有


sp_setnetname (Transact-SQL)

sys.servers 内のネットワーク名を、SQL Server 2005 のリモート インスタンスの実際のネットワーク コンピュータ名に設定します。このプロシージャを使用すると、ネットワーク名に無効な 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 の識別子では使用できない文字を含めることができます。

結果セット

なし

解説

コンピュータ名に無効な識別子が含まれている場合は、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'
ms190318.note(ja-jp,SQL.90).gifメモ :
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)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手