SQL Server 2000 のインスタンスで、以前に作成したジョブの更新または削除ができない場合がある。この場合、以下のエラーメッセージが表示される。
エラー 14274: MSX サーバーからのジョブ、ステップ、スケジュールの追加、更新、または削除はできません。ジョブは保存されませんでした。 |
この現象は、以下のような操作を行った場合に発生することがある。
・ | SQL Server を実行するコンピュータのコンピュータ名を変更した |
・ | SQL Server 2000 のデータベースを別のコンピュータ名のコンピュータに移行した |
・ | SQL Server 7.0 の仮想サーバーを SQL Server 2000 の仮想サーバーにアップグレードした |
SQL Server 7.0 では、msdb..sysjobs テーブルの originating_server フィールドに、ローカルサーバーを参照する値「(local)」が格納されるため、この問題は発生しない。したがって、サーバー名をどのように変更しても、ローカルサーバージョブには影響ない。
SQL Server 2000 では複数インスタンスがサポートされているため、originating_server フィールドには「サーバー名¥インスタンス名」形式のインスタンス名が格納されている。サーバーの既定のインスタンスにも、「(local)」の代わりに実際のサーバー名が使用されている。そのため、Windows サーバーの名前が変更されたあとでも、これらのジョブではまだ元の名前のサーバー名が参照され、新しいサーバー名からの処理ではこれらのジョブを更新または削除できないことがある。
SQL Server 7.0 から SQL Server 2000 にアップグレードしたあとは、すべての既存ジョブの originating_server 列も更新され、値「(local)」は使用されなくなる。
○ 対処方法
この問題に対処するには、以下の手順を実行する。
1. | 問題となったサーバー名を元の名前に戻す |
2. | すべてのジョブのスクリプトを作成した後で、すべてのジョブを削除する |
3. | サーバー名を新しい名前に変更する |
4. | 手順 2. で生成したスクリプトを実行して、ジョブを元に戻す |
【参照】 マイクロソフト 技術方法 281642
SQL Server 2000 Books Online 「マルチサーバー管理」