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 を使用できないことがあります。 詳細については、「 Server Web Service の名前の変更」を参照してください。
データベース ミラーリングを使用する構成のコンピューターの名前を変更するときは、名前変更操作の前にデータベース ミラーリングを無効にする必要があります。 次に、新しいコンピューター名でデータベース ミラーリングを再確立します。 データベース ミラーリングのメタデータは、新しいコンピューター名を反映するように自動的には更新されません。 次の手順を実行してシステム メタデータを更新します。
コンピューター名へのハードコード参照を使用する 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
を使用してコンピューターの名前参照を更新します。 詳細については、 sp_addlinkedserver (Transact-SQL) または sp_setnetname (Transact-SQL) を参照してください。
クライアント エイリアス名 - 名前付きパイプを使用するクライアント エイリアスは、コンピューターの名前変更操作の影響を受けます。 たとえば、SRVR1 を指すようにエイリアス "PROD_SRVR" が作成され、名前付きパイプ プロトコルが使用されている場合、パイプ名は \\SRVR1\pipe\sql\query
のようになります。 コンピューターの名前が変更されると、名前付きパイプのパスは有効でなくなります。 名前付きパイプの詳細については、「 名前付きパイプを使用した有効な接続文字列の作成」を参照してください。