SQLServerをインストールしたサーバーのコンピューター名を変更する

あまりないケースですが、SQLServerをサーバーにインストールしたあとにサーバーの名前を変更しなければならないときがあります。
このとき、サーバーの名前を変更した後に何もしなくてもほとんどのクエリーが動くのですが、内部的にもっているsysservers(SQLServer2005以降ではsys.servers)を新しいサーバー名で書き換えないとDB-Library経由でのアクセスや、リンククエリーでエラーになる場合があります。


その書き換えのためのバッチファイルを作成しました。

@ECHO OFF
::-------------------------------
:: サーバー名情報
::-------------------------------
:: 新しいサーバー名
SET SVNAME=%COMPUTERNAME%

:: 旧サーバー名[適当に変更してください]
SET OLDSVNAME=OLDServerName

::-------------------------------
:: 接続情報
::-------------------------------
:: 接続ユーザー名[適当に変更してください]
SET CONNUSER=xxxx

:: 接続パスワード[適当に変更してください]
SET CONNPASS=Pa$$w0rd


:: SQLServerの起動
NET START MSSQLSERVER

:: 旧サーバー情報削除
OSQL -U%CONNUSER% -P%CONNPASS% -Q"sp_dropserver '%OLDSVNAME%'"

:: 新サーバー情報登録
OSQL -U%CONNUSER% -P%CONNPASS% -Q"sp_addserver '%SVNAME%','local'"


:: SQLServerの再起動
NET STOP MSSQLSERVER

:: 3秒停止
PING -n 3 127.0.0.1 > NUL 

NET START MSSQLSERVER

接続ユーザー名とパスワードを適宜変更するか、もしくはOSQLで接続する部分をWindows認証に変えて(-U -Pの代わりに-Eを指定)ください。