笔记305 创建用户自定义错误的警报 2013-6-22
笔记305 创建用户自定义错误的警报 2013-6-22
1 --创建用户自定义错误的警报 2013-6-22 2 --使用系统存储过程sp_addmessage可将用户定义的错误信息添加到sysmessages表 3 --使用sp_addmessage可以指定消息号、验证级别、消息文本,以及该错误是否 4 --记录到应用程序日志 5 6 --用户定义错误时,使用大于50000的错误消息号和0~18的严重级别。使用 7 --raiserror语句可引发用户定义错误。只有系统管理员可以引发严重级别 8 --为19~25的错误 9 10 11 --创建一条用户定义错误消息,错误号为50001,严重级别为10,当该错误发生 12 --的时候,相应错误消息写入应用程序日志(使用true指定) 13 --当删除adventrueworks数据库中的customers表的客户记录时,在 14 --remove_customer存储过程中使用raiserror语句引发50001错误。 15 16 --创建警报的TSQL 17 EXEC [sys].[sp_addmessage] @msgnum = 50001, -- int 18 @severity = 20, -- smallint 19 @msgtext = N'customer %d was delete', -- nvarchar(255) 20 @lang = us_English, -- sysname 21 @with_log = 'true', -- varchar(5) 22 @replace = 'replace' -- varchar(7) 23 GO 24 --------------------------------------------------------------- 25 EXEC [sys].[sp_dropmessage] @msgnum = 50001, -- int 26 @lang = us_English -- sysname 27 28 ------------------------------------------------------------- 29 USE [AdventureWorks] 30 GO 31 CREATE PROC Remove_Customer(@Customerid CHAR(10)) 32 AS 33 BEGIN TRAN 34 DELETE FROM [Sales].[Customer] WHERE [CustomerID]=@Customerid 35 RAISERROR(50001,10,1,@Customerid) 36 COMMIT 37 GO 38 39 --默认情况下,出现严重级别低于19的用户定义消息时,不会将其发送到Miscrosoft Windows 40 --应用程序日志。因此,严重级别低于19的用户定义消息不会触发SQL代理警报