Although I have previously tackled this problem by rolling my own notifications. This time I realised that the SQL jobs that run every minute or two are of low importance – and I don’t really want emails when they fail. I will notice at some point during the working day.
Here is the code to lists jobs that run frequently and are configured to send notification emails. Along with the commands to remove those notifications.
/* JobNotificationEmailStop.sql */
SELECT S.[name] JobName,
SS.freq_subday_interval [ScheduleFreq(mins)],
'EXEC msdb.dbo.sp_update_job @job_name = N'''
+ S.[name]
+ ''', @notify_email_operator_name = N'''';'
CommandToDisableEmailNotification
FROM msdb.dbo.sysjobs S
JOIN msdb.dbo.sysjobschedules SJ
ON S.job_id = SJ.job_id
JOIN msdb.dbo.sysschedules SS
ON SS.schedule_id = SJ.schedule_id
WHERE SS.freq_subday_interval > 0
AND S.notify_level_email > 0
ORDER BY SS.freq_subday_interval;