\n
1:<\/span> -- Add important SQL Agent Alerts to your instance<\/span><\/pre>\n<\/p>\n
2:<\/span><\/pre>\n<\/p>\n
3:<\/span> -- Change the Alert names and @OperatorName as needed<\/span><\/pre>\n<\/p>\n
4:<\/span> -- Glenn Berry<\/span><\/pre>\n<\/p>\n
5:<\/span> -- SQLskills<\/span><\/pre>\n<\/p>\n
6:<\/span> -- 9-27-2012<\/span><\/pre>\n<\/p>\n
7:<\/span><\/pre>\n<\/p>\n
8:<\/span> USE<\/span> [msdb];<\/pre>\n<\/p>\n
9:<\/span> GO<\/span><\/pre>\n<\/p>\n
10:<\/span><\/pre>\n<\/p>\n
11:<\/span> -- Make sure you have an Agent Operator defined<\/span><\/pre>\n<\/p>\n
12:<\/span> -- Change @OperatorName as needed<\/span><\/pre>\n<\/p>\n
13:<\/span> DECLARE<\/span> @OperatorName sysname = N'SQLDBAs'<\/span>;<\/pre>\n<\/p>\n
14:<\/span><\/pre>\n<\/p>\n
15:<\/span> -- Change @CategoryName as needed<\/span><\/pre>\n<\/p>\n
16:<\/span> DECLARE<\/span> @CategoryName sysname = N'SQL Server Agent Alerts'<\/span>;<\/pre>\n<\/p>\n
17:<\/span><\/pre>\n<\/p>\n
18:<\/span> -- Add Alert Category if it does not exist<\/span><\/pre>\n<\/p>\n
19:<\/span> IF<\/span> NOT<\/span> EXISTS<\/span> (SELECT<\/span> *<\/pre>\n<\/p>\n
20:<\/span> FROM<\/span> msdb.dbo.syscategories<\/pre>\n<\/p>\n
21:<\/span> WHERE<\/span> category_class = 2 -- ALERT<\/span><\/pre>\n<\/p>\n
22:<\/span> AND<\/span> category_type = 3<\/pre>\n<\/p>\n
23:<\/span> AND<\/span> name = @CategoryName)<\/pre>\n<\/p>\n
24:<\/span> BEGIN<\/span><\/pre>\n<\/p>\n
25:<\/span> EXEC<\/span> dbo.sp_add_category @class<\/span> = N'ALERT'<\/span>, @type = N'NONE'<\/span>, @name = @CategoryName;<\/pre>\n<\/p>\n
26:<\/span> END<\/span><\/pre>\n<\/p>\n
27:<\/span><\/pre>\n<\/p>\n
28:<\/span> -- Get the server name<\/span><\/pre>\n<\/p>\n
29:<\/span> DECLARE<\/span> @ServerName sysname = (SELECT<\/span> @@SERVERNAME);<\/pre>\n<\/p>\n
30:<\/span><\/pre>\n<\/p>\n
31:<\/span><\/pre>\n<\/p>\n
32:<\/span> -- Alert Names start with the name of the server <\/span><\/pre>\n<\/p>\n
33:<\/span> DECLARE<\/span> @Sev19AlertName sysname = @ServerName + N' Alert - Sev 19 Error: Fatal Error in Resource'<\/span>;<\/pre>\n<\/p>\n
34:<\/span> DECLARE<\/span> @Sev20AlertName sysname = @ServerName + N' Alert - Sev 20 Error: Fatal Error in Current Process'<\/span>;<\/pre>\n<\/p>\n
35:<\/span> DECLARE<\/span> @Sev21AlertName sysname = @ServerName + N' Alert - Sev 21 Error: Fatal Error in Database Process'<\/span>;<\/pre>\n<\/p>\n
36:<\/span> DECLARE<\/span> @Sev22AlertName sysname = @ServerName + N' Alert - Sev 22 Error Fatal Error: Table Integrity Suspect'<\/span>;<\/pre>\n<\/p>\n
37:<\/span> DECLARE<\/span> @Sev23AlertName sysname = @ServerName + N' Alert - Sev 23 Error: Fatal Error Database Integrity Suspect'<\/span>;<\/pre>\n<\/p>\n
38:<\/span> DECLARE<\/span> @Sev24AlertName sysname = @ServerName + N' Alert - Sev 24 Error: Fatal Hardware Error'<\/span>;<\/pre>\n<\/p>\n
39:<\/span> DECLARE<\/span> @Sev25AlertName sysname = @ServerName + N' Alert - Sev 25 Error: Fatal Error'<\/span>;<\/pre>\n<\/p>\n
40:<\/span> DECLARE<\/span> @Error825AlertName sysname = @ServerName + N' Alert - Error 825: Read-Retry Required'<\/span>;<\/pre>\n<\/p>\n
41:<\/span><\/pre>\n<\/p>\n
42:<\/span><\/pre>\n<\/p>\n
43:<\/span><\/pre>\n<\/p>\n
44:<\/span> -- Sev 19 Error: Fatal Error in Resource<\/span><\/pre>\n<\/p>\n
45:<\/span> IF<\/span> NOT<\/span> EXISTS<\/span> (SELECT<\/span> name FROM<\/span> msdb.dbo.sysalerts WHERE<\/span> name = @Sev19AlertName)<\/pre>\n<\/p>\n
46:<\/span> EXEC<\/span> msdb.dbo.sp_add_alert @name = @Sev19AlertName,<\/pre>\n<\/p>\n
47:<\/span> @message_id=0, @severity=19, @enabled=1,<\/pre>\n<\/p>\n
48:<\/span> @delay_between_responses=900, @include_event_description_in=1,<\/pre>\n<\/p>\n
49:<\/span> @category_name = @CategoryName,<\/pre>\n<\/p>\n
50:<\/span> @job_id=N'00000000-0000-0000-0000-000000000000'<\/span>;<\/pre>\n<\/p>\n
51:<\/span><\/pre>\n<\/p>\n
52:<\/span> -- Add a notification if it does not exist<\/span><\/pre>\n<\/p>\n
53:<\/span> IF<\/span> NOT<\/span> EXISTS<\/span>(SELECT<\/span> *<\/pre>\n<\/p>\n
54:<\/span> FROM<\/span> dbo.sysalerts AS<\/span> sa<\/pre>\n<\/p>\n
55:<\/span> INNER<\/span> JOIN<\/span> dbo.sysnotifications AS<\/span> sn<\/pre>\n<\/p>\n
56:<\/span> ON<\/span> sa.id = sn.alert_id<\/pre>\n<\/p>\n
57:<\/span> WHERE<\/span> sa.name = @Sev19AlertName)<\/pre>\n<\/p>\n
58:<\/span> BEGIN<\/span><\/pre>\n<\/p>\n
59:<\/span> EXEC<\/span> msdb.dbo.sp_add_notification @alert_name = @Sev19AlertName, @operator_name=@OperatorName, @notification_method = 1;<\/pre>\n<\/p>\n
60:<\/span> END<\/span><\/pre>\n<\/p>\n
61:<\/span><\/pre>\n<\/p>\n
62:<\/span><\/pre>\n<\/p>\n
63:<\/span><\/pre>\n<\/p>\n
64:<\/span><\/pre>\n<\/p>\n
65:<\/span><\/pre>\n<\/p>\n
66:<\/span> -- Sev 20 Error: Fatal Error in Current Process<\/span><\/pre>\n<\/p>\n
67:<\/span> IF<\/span> NOT<\/span> EXISTS<\/span> (SELECT<\/span> name FROM<\/span> msdb.dbo.sysalerts WHERE<\/span> name = @Sev20AlertName)<\/pre>\n<\/p>\n
68:<\/span> EXEC<\/span> msdb.dbo.sp_add_alert @name = @Sev20AlertName,<\/pre>\n<\/p>\n
69:<\/span> @message_id=0, @severity=20, @enabled=1,<\/pre>\n<\/p>\n
70:<\/span> @delay_between_responses=900, @include_event_description_in=1,<\/pre>\n<\/p>\n
71:<\/span> @category_name = @CategoryName,<\/pre>\n<\/p>\n
72:<\/span> @job_id=N'00000000-0000-0000-0000-000000000000'<\/span><\/pre>\n<\/p>\n
73:<\/span><\/pre>\n<\/p>\n
74:<\/span> -- Add a notification if it does not exist<\/span><\/pre>\n<\/p>\n
75:<\/span> IF<\/span> NOT<\/span> EXISTS<\/span>(SELECT<\/span> *<\/pre>\n<\/p>\n
76:<\/span> FROM<\/span> dbo.sysalerts AS<\/span> sa<\/pre>\n<\/p>\n
77:<\/span> INNER<\/span> JOIN<\/span> dbo.sysnotifications AS<\/span> sn<\/pre>\n<\/p>\n
78:<\/span>