sp_addserver (Transact-SQL)

SQL Server のローカル インスタンスの名前を定義します。このストアド プロシージャではリモート サーバーも定義できます。

注意

リモート サーバーの機能は、次のバージョンの SQL Server では削除される予定です。リンク サーバーを定義するには、代わりに sp_addlinkedserver を使用してください。

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

構文

sp_addserver [ @server = ] 'server' 
     [ , [ @local= ] 'local' ] 
     [ , [ @duplicate_ok = ] 'duplicate_OK' ]

引数

  • [ @server = ] 'server'
    サーバーの名前を指定します。サーバー名は一意で、Microsoft Windows のコンピュータ名の規則に従っている必要があります。ただし、スペースは使用できません。server のデータ型は sysname で、既定値はありません。

    SQL Server の複数のインスタンスがコンピュータにインストールされている場合、インスタンスは別のサーバー上にあるように動作します。server を servername\instancename として参照し、名前付きのインスタンスを指定します。

  • [ @local = ] 'LOCAL'
    追加するサーバーがローカル サーバーであるか、リモート サーバーであるかを指定します。@local のデータ型は varchar(10) で、既定値は NULL です。@localLOCAL として指定すると、@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 (失敗)

説明

以前のバージョンの SQL Server を実行しているリモート サーバー上でストアド プロシージャを実行する (リモート プロシージャを呼び出す) 場合は、sp_addserver を使用してリモート サーバーを追加します。SQL Server バージョン 7.0 以降を実行しているリモート サーバーで、ストアド プロシージャ、または任意の分散クエリを実行する場合は、sp_addlinkedserver を使用してサーバーを追加します。

サーバー オプションを設定または解除するには、sp_serveroption を使用します。

ユーザーが定義したトランザクション内では、sp_addserver は実行できません。

権限

setupadmin 固定サーバー ロールのメンバシップが必要です。

次の例では、リモート サーバー ACCOUNTS のエントリをローカル サーバーに作成します。

sp_addserver 'ACCOUNTS';