I have an error level 16 alert set up as follows:
USE [msdb]
GO
EXEC msdb.dbo.sp_add_alert @name=N'Error - Severity 16',
@message_id=0,
@severity=16,
@enabled=1,
@delay_between_responses=0,
@include_event_description_in=1,
@category_name=N'[Uncategorized]',
@job_id=N'00000000-0000-0000-0000-000000000000'
I was curious why
SELECT 1/0;
Msg 8134, Level 16, State 1, Line 17 Divide by zero error encountered.
was not raising an error but
BACKUP DATABASE MyDatabase TO DISK = 'C:\FolderThatDoesntexist'
Msg 3201, Level 16, State 1, Line 8 Cannot open backup device 'C:\FolderThatDoesntexist'. Operating system error 5(Access is denied.).
Msg 3013, Level 16, State 1, Line 8 BACKUP DATABASE is terminating abnormally.
was
This post and The blog post it references suggest that SQL Server will only raise events for errors that are logged and this can be found in sys.messages
So I queried sys.messages
for these error codes:
SELECT severity,
message_id,
is_event_logged
FROM sys.messages
WHERE language_id = 1033 AND
message_id IN (8134,3201,3013)
but found that all three are set to 0:
Why therefore do 3201 and 3013 trigger my alert but 8134 does not?