SQL Serverの置き換えを進めており、サーバー自体の名前を変更する方が、他のすべてを変更して新しい名前を指すよりもはるかに簡単であると判断しました。SQL Serverのインスタンス名を変更して、次のようなコンピューター名に一致させる手順を見つけました。
sp_dropserver 'OLDSERVER'
sp_addserver 'NEWSERVER', local
SQL Enterprise Managerはそれらを一緒に好きではないようですが。一緒に機能させるには、次のように変更する必要がありました。
sp_dropserver 'OLDSERVER'; GO
sp_addserver 'NEWSERVER', 'local'; GO
悪くはありませんが、もっと自動化したいです。@@ ServerNameはインスタンスの名前を返すので、最初の行を自動化する方法を見つけました。
sp_dropserver @@ServerName; GO
また、SERVERPROPERTY( 'ServerName')はコンピューター名を返すことになっていることもわかったので、それを使用して2番目の部分を自動化できると思いましたが、これは機能しませんでした。
sp_addserver SERVERPROPERTY('ServerName'), 'local'; GO
変数を設定しようとしましたが、SQLエージェントジョブを更新するためにそれを行う必要がありますが、それも機能しませんでした。
DECLARE @srv sysname;
SET @srv = CAST(SERVERPROPERTY('ServerName') AS sysname);
sp_addserver @srv, 'local'; GO
'sp_addserver'付近の構文が正しくありません。
これをより簡単に再利用できるようにするために、スクリプトに新しいサーバー名をハードコーディングする必要がないようにしたいと思います。誰かアイデアはありますか?