sp_addserver (Transact-SQL)
適用対象: SQL Server
SQL Server のローカル インスタンスの名前を定義します。 SQL Server をホストするコンピューターの名前が変更されたら、sp_addserver
を使用して、新しいコンピューター名を SQL Server データベース エンジンインスタンスに通知します。 このプロシージャは、コンピューターでホストされているデータベース エンジンのすべてのインスタンスで実行する必要があります。
データベース エンジンのインスタンス名は変更できません。 名前付きインスタンスのインスタンス名を変更するには、目的の名前で新しいインスタンスをインストールし、古いインスタンスからデータベース ファイルをデタッチし、新しいインスタンスにデータベースをアタッチして、古いインスタンスを削除します。 または、クライアント コンピューターにクライアント エイリアス名を作成し、サーバー コンピューター上のインスタンスの名前を変更せずに、接続を別のサーバー名とインスタンス名または <server>:<port>
の組み合わせにリダイレクトすることもできます。
構文
sp_addserver
[ @server = ] N'server'
[ , [ @local = ] 'LOCAL' ]
[ , [ @duplicate_ok = ] 'duplicate_OK' ]
[ ; ]
引数
[ @server = ] N'server'
サーバーの名前。 サーバー名は一意であり、Windows コンピューター名の規則に従う必要がありますが、スペースは使用できません。 @server は sysname で、既定値はありません。
SQL Server の複数のインスタンスがコンピューターにインストールされている場合、インスタンスは別のサーバー上にあるかのように動作します。 @serverを<servername>\<instancename>
と呼ぶことで、名前付きインスタンスを指定します。
[ @local = ] 'LOCAL'
サーバーがローカル サーバーとして追加されることを指定します。 @local は varchar(10) で、既定値は NULL
です。 LOCAL
として@localを指定すると、@serverがローカル サーバーの名前として定義され、@@SERVERNAME
関数は @server の値を返します。
SQL Server セットアップでは、インストール時にこの変数をコンピューター名に設定します。 既定では、コンピューター名は、ユーザーが追加の構成を必要とせずに SQL Server のインスタンスに接続する方法です。
ローカル定義は、データベース エンジンが再起動された後にのみ有効になります。 データベース エンジンの各インスタンスで定義できるローカル サーバーは 1 つだけです。
[ @duplicate_ok = ] 'duplicate_OK'
重複するサーバー名を許可するかどうかを指定します。 @duplicate_ok は varchar(13) で、既定値は NULL
です。 @duplicate_ok は、値 duplicate_OK
または NULL
のみを持つことができます。 @duplicate_okを指定し、追加するサーバー名が既に存在する場合、エラーは発生しません。 名前付きパラメーターを使用しない場合は、 @local を指定する必要があります。
リターン コードの値
0
(成功) または 1
(失敗)。
解説
サーバー オプションを設定またはクリアするには、 sp_serveroption
を使用します。
sp_addserver
は、ユーザー定義トランザクション内では使用できません。
sp_addserver
を使用してリモート サーバーを追加することは廃止されました。 代わりに sp_addlinkedserver を使用してください。
sp_addserver
を使用してローカル サーバー名を変更すると、可用性グループまたはレプリケーションを使用するときに、望ましくない影響やサポートされていない構成が発生する可能性があります。
アクセス許可
setupadmin 固定サーバー ロールのメンバーシップが必要です。
例
次の例では、SQL Server をホストしているコンピューターの名前のデータベース エンジン エントリをACCOUNTS
に変更します。
EXEC sp_addserver 'ACCOUNTS', 'local';