SQL Server Agent のジョブが削除できない

SQL Server Agent のジョブが削除できな現象に遭遇。
あれこれ調べて削除したメモです。

ことの発端はメインテナンスプランを設定し実行すると、その日最初の実行でエラーが出ることです。
同じ日の2度目以降は普通に実行できるんですけど、1度目の実行では必ずエラーが出るという不思議な現象。

メインテナンスプランを実行するとエラーがでる。1度でると次の日まで出ない

「Transact-SQLステートメントまたはバッチの実行中に例外が発生しました。」というよくあるメッセージですが、エラーコードは、

SQL Server Error 22022

と見慣れないもの。
私にはお手上げですよ。

WS000015

原因を探してSQL Server Agentのジョブを見たら、ジョブが3つ登録されてます。

私がメインテナンスプランに登録したのは2件。
正確には2件登録したが、1件削除し、改めて1件登録したのです。
つまり、メインテナンスプランは削除できたけどジョブが削除されずに残ってしまったようです。

ジョブを削除しようとするとエラーが出る

それではと、残ってしまったジョブを削除しようとしたら、上のエラーメッセージです。
エラーコードは

SQL Server Error 547

削除する方法をネット調べましたが、参考になったのはこちら。

参考:https://wsbs.wordpress.com/2010/08/17/sql-server%E3%81%AE%E3%83%A1%E3%83%B3%E3%83%86%E3%83%8A%E3%83%B3%E3%82%B9%E3%83%97%E3%83%A9%E3%83%B3%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%E3%81%A8%E2%80%9Dreference-%E5%88%B6%E7%B4%84-fk_sub/

参考にさせて貰ったサイトではクエリでやってますが、私の方はクエリを使わずに消してみました。
以下、その手順の記録です。

WS000001

まずは、削除したいジョブを選択し、右クリック、メニューのプロパティを選択します。

WS000007

プロパティのスケジュールをクリック。
記載されているスケジュールのIDを確認します。

WS000000

Databases>System Databases>msdb>Tables>System Tablesにあるdbo.sysmaintplan_subplansを選択します。

WS000008

dbo.sysmaintplan_subplansで右クリック、メニューからEdit Top 200 Rowsを選択します。

WS000011

表示された一覧のschedule_idから②で確認したIDを探します。

WS000012

該当するIDの行で右クリック、メニューからDeleteを選択し削除します。

WS000013

削除したいジョブで右クリック、メニューからDeleteを選択し、ジョブを削除します。

この手順で削除して他に影響が出るかどうか分かりませんが、消えたと言うことでよしとしておきます(^^ゞ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です