SQL Server Agent jobs without notifications
SQL Server Agent permits you to run a wide variety of tasks within SQL Server.
Its built-in notification system allows you to define operators and contact them when a job fails.
Being able to quickly resolve the issue when a SQL Server Agent job fails is better than having someone else notify you that it has failed.
How to list all the SQL Server Agent jobs without notifications?
You can use the T-SQL script below to get the job name list.
SELECT j.[name] AS [JobName]
FROM [msdb].[dbo].[sysjobs] j
LEFT JOIN [msdb].[dbo].[sysoperators] o ON (j.[notify_email_operator_id] = o.[id])
WHERE j.[enabled] = 1
AND j.[notify_level_email] NOT IN (
1
,2
,3
)
How to fix the issue?
First, make sure you have configured the Database mail and an operator.
Then, update the SQL Server Agent job to enable job failure notification:
- Open SQL Server Management Studio (SSMS).
- Click on SQL Server Agent, expand the Jobs and right-click it.
- Go to the Notifications tab and click checkbox to enable Email.
- Select the correct Operator and choose When the job fails.
You may also use the T-SQL script below to generate the change script for all jobs that don’t have email notifications.
Only change @notify_email_operator_name
as needed.
USE MSDB GO
SELECT 'EXEC msdb.dbo.sp_update_job @job_name=[' + name + '], @notify_level_email=2, @notify_email_operator_name=N''DBA Alerts''; ' Command_to_execute
FROM MSDB.dbo.sysjobs
WHERE [Notify_Level_Email] = 0
AND [Enabled] = 1
Here’s an example of the output the script will generate:
EXEC msdb.dbo.sp_update_job @job_name = [JOBNAME1]
,@notify_level_email = 2
,@notify_email_operator_name = N'DBA Alerts';
EXEC msdb.dbo.sp_update_job @job_name = [JOBNAME2]
,@notify_level_email = 2
,@notify_email_operator_name = N'DBA Alerts';
EXEC msdb.dbo.sp_update_job @job_name = [JOBNAME3]
,@notify_level_email = 2
,@notify_email_operator_name = N'DBA Alerts';
Review and run the output script to implement the change.