sp_addserver (Transact-SQL)

適用対象:SQL Server

SQL Server のローカル インスタンスの名前を定義します。 SQL Server をホストするコンピューターの名前が変更されたら、新しいコンピューター名を SQL Server データベース エンジンインスタンスに通知するために使用sp_addserverします。 このプロシージャは、コンピューターでホストされているデータベース エンジンのすべてのインスタンスで実行する必要があります。 データベース エンジンのインスタンス名は変更できません。 名前付きインスタンスのインスタンス名を変更するには、目的の名前で新しいインスタンスをインストールし、古いインスタンスからデータベース ファイルをデタッチし、新しいインスタンスにデータベースをアタッチして、古いインスタンスを削除します。 または、クライアント コンピューター上でクライアント別名を作成して、サーバー コンピューター上のインスタンス名を変更せずに、接続を別のサーバーとインスタンス名か サーバー:ポート の組み合せにリダイレクトできます。

Transact-SQL 構文表記規則

構文

sp_addserver
    [ @server = ] N'server'
    [ , [ @local = ] 'LOCAL' ]
    [ , [ @duplicate_ok = ] 'duplicate_OK' ]
[ ; ]

引数

[ @server = ] N'server'

サーバーの名前。 サーバー名は一意であり、Microsoft 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';