サーバーにSQLジョブがあり、リモートサーバーから毎晩トリガーされます(バックアップが完了した後)。
失敗したときに通知するようにジョブを設定しましたが、ジョブがnotがトリガーされたときに通知するアラートを設定したいと思います。つまり、リモートサーバーが私の側でジョブのトリガーに失敗した場合。
これは可能ですか?私は設定を見てきましたが、すべてのアラートなどは、ジョブが失敗/成功したときに関係しています。
(ステータスに関係なく)完了時にアラートを出すようにジョブを設定することができ、それを開始するためにそれを行っていました(そしてそれを開始するためにそれを行いました)が、連続した電子メールを受け取りたくない(結局のところ、おそらく単にそれらを無視し始める)。
私はこれを解決する方法を見つけることができましたが、それは私が好むほどきれいではありません。ターゲットジョブの最終実行日をチェックする2番目のジョブを作成しました。これは、ターゲットジョブが実行されたはずの数時間後、毎日実行されるようにスケジュールされています。
If not exists
(
SELECT 'x'
FROM msdb.dbo.SysJobServers S
INNER JOIN msdb.dbo.SysJobs J ON S.job_id = J.job_id
WHERE J.name = 'JobName'
AND CONVERT(datetime2, CONVERT(VARCHAR(20), last_run_date)) > GETDATE() -1
)
BEGIN
RAISERROR ('The Job has not been executed today.', 16, 0)
END