笔记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代理警报

 

posted @ 2013-08-04 21:22 桦仔 阅读(...) 评论(...)  编辑 收藏