SQL Server のスタンドアロン インスタンスをホストするコンピューターの名前変更
SQL Server を実行するコンピューターの名前を変更した場合、変更後の名前は SQL Server の起動時に認識されます。 コンピューター名を再設定するためにセットアップを再度実行する必要はありません。 代わりに次の手順を実行して、sys.servers に格納され、システム関数 @@SERVERNAME でレポートされるシステム メタデータを更新します。 @@SERVERNAME を使用するか、sys.servers からサーバー名のクエリを実行するリモート接続およびリモート アプリケーションのコンピューター名の変更を反映するには、システム メタデータを更新します。
ここで示す手順を実行しても、SQL Server のインスタンスの名前を変更することはできません。 変更できるのは、インスタンス名のうち、コンピューター名に対応する部分のみです。 たとえば、Instance1 という SQL Server のインスタンスをホストする MB1 というコンピューターを、MB2 のような別の名前に変更できます。 ただし、名前のインスタンスの部分 (Instance1) は変更されません。 この例では、\\ComputerName\InstanceName が \\MB1\Instance1 から \\MB2\Instance1 に変更されます。
名前を変更する準備
名前変更のプロセスを開始する前に、次の情報を確認します。
SQL Server のインスタンスが SQL Server フェールオーバー クラスターに含まれている場合、コンピューターの名前変更のプロセスは、スタンドアロン インスタンスをホストするコンピューターとは異なります。
SQL Server では、レプリケーションでログ配布を使用する場合を除き、レプリケーションに関連するコンピューターの名前は変更できません。 プライマリ コンピューターが完全に存在しなくなった場合は、ログ配布のセカンダリ コンピューターの名前を変更できます。 詳細については、「ログ配布とレプリケーション (SQL Server)」を参照してください。
Reporting Services を使用するように構成されたコンピューターの名前を変更すると、コンピューター名の変更後、Reporting Services を使用できないことがあります。 詳細については、「レポート サーバー コンピューターの名前の変更」を参照してください。
データベース ミラーリングを使用する構成のコンピューターの名前を変更するときは、名前変更操作の前にデータベース ミラーリングを無効にする必要があります。 次に、新しいコンピューター名でデータベース ミラーリングを再確立します。 データベース ミラーリングのメタデータは、新しいコンピューター名に自動的には更新されません。 次の手順を実行してシステム メタデータを更新します。
コンピューター名へのハードコード参照を使用する Windows グループをとおして SQL Server に接続するユーザーは、SQL Server に接続できなくなることがあります。 この状況は、名前を変更した場合に、Windows グループで変更前のコンピューター名が指定されていると発生する可能性があります。 このような Windows グループが名前変更の後でも SQL Server 接続を確立できるようにするには、新しいコンピューター名を指定するように Windows グループを更新します。
SQL Server を再起動した後、新しいコンピューター名を使用して SQL Server に接続できます。 @@SERVERNAME がローカル サーバー インスタンスの更新後の名前を返すことを確認するには、シナリオに応じて次のプロシージャを手動で実行する必要があります。 使用するプロシージャは、SQL Server の既定のインスタンスと名前付きインスタンスのどちらをホストするコンピューターを更新しているかによって決まります。
SQL Server のスタンドアロン インスタンスをホストするコンピューターの名前を変更するには
SQL Server の既定のインスタンスをホストする名前変更されたコンピューターの場合は、次のプロシージャを実行します。
sp_dropserver <old_name>; GO sp_addserver <new_name>, local; GO
SQL Server のインスタンスを再起動します。
SQL Server の名前付きインスタンスをホストする名前変更されたコンピューターの場合は、次のプロシージャを実行します。
sp_dropserver <old_name\instancename>; GO sp_addserver <new_name\instancename>, local; GO
SQL Server のインスタンスを再起動します。
名前変更操作の後
コンピューターの名前を変更した場合は、変更前のコンピューター名を使用している接続はすべて、変更後の名前で接続する必要があります。
名前変更操作が正常に完了したことを検証するには
@@SERVERNAME または sys.servers で情報を確認できます。 @@SERVERNAME 関数では新しい名前が返されます。sys.servers テーブルには新しい名前が表示されます。 次の例では、@@SERVERNAME の使い方を示します。
SELECT @@SERVERNAME AS 'Server Name';
その他の注意点
リモート ログイン : コンピューターでリモート ログインを行っている場合に、sp_dropserver を実行すると次のようなエラーが発生することがあります。
Server: Msg 15190, Level 16, State 1, Procedure sp_dropserver, Line 44 There are still remote logins for the server 'SERVER1'.
このエラーを解決するには、このサーバーに対するリモート ログインを削除する必要があります。
リモート ログインを削除するには
既定のインスタンスの場合は、次のプロシージャを実行します。
sp_dropremotelogin old_name; GO
名前付きインスタンスの場合は、次のプロシージャを実行します。
sp_dropremotelogin old_name\instancename; GO
リンク サーバー構成 : リンク サーバー構成はコンピューター名の変更操作の影響を受けます。 sp_addlinkedserver または sp_setnetname を使用してコンピューターの名前参照を更新します。 詳細については、MSDN の SQL Server オンライン ブックのトピック「sp_addlinkedserver (Transact-SQL)」または「sp_setnetname (Transact-SQL)」を参照してください。
クライアントのエイリアス: 名前付きパイプを使用するクライアントのエイリアスはコンピューター名の変更操作の影響を受けます。 たとえば、SRVR1 に対するエイリアス "PROD_SRVR" が作成され、名前付きパイプのプロトコルが使用されている場合、パイプ名は \\SRVR1\pipe\sql\query のようになります。 コンピューター名が変更された後は、名前付きパイプのパスは無効になります。 名前付きパイプの詳細については、MSDN の SQL Server オンライン ブックのトピック「名前付きパイプを使用した有効な接続文字列の作成」を参照してください。