web-dev-qa-db-ja.com

ジョブがトリガーされていないときにアラート

サーバーにSQLジョブがあり、リモートサーバーから毎晩トリガーされます(バックアップが完了した後)。

失敗したときに通知するようにジョブを設定しましたが、ジョブがnotがトリガーされたときに通知するアラートを設定したいと思います。つまり、リモートサーバーが私の側でジョブのトリガーに失敗した場合。

これは可能ですか?私は設定を見てきましたが、すべてのアラートなどは、ジョブが失敗/成功したときに関係しています。

(ステータスに関係なく)完了時にアラートを出すようにジョブを設定することができ、それを開始するためにそれを行っていました(そしてそれを開始するためにそれを行いました)が、連続した電子メールを受け取りたくない(結局のところ、おそらく単にそれらを無視し始める)。

4

私はこれを解決する方法を見つけることができましたが、それは私が好むほどきれいではありません。ターゲットジョブの最終実行日をチェックする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
7