raiserror

抛出用户定义的错误信息

语法
RAISERROR ( { msg_id | msg_str } { , severity , state }
    [ , argument [ ,...n ] ] )
    [ WITH option [ ,...n ] ]

1 msg_id

用户定义的错误信息号,错误号必须介于 13000 到 2147483647 之间,而且不能是 50000。  

例如:

RAISERROR (13002, -- Message text.
               16, -- Severity.
               1 -- State.
               );
select @@ERROR

显示结果:

消息 13002,级别 16,状态 1,第 2 行
审核 (为select * from sysmessages where ERROR=13002 的描述内容)

2 msg_str

 用户定义的错误信息内容,最多为400个字符

RAISERROR (‘xxxx’, -- Message text.
               16, -- Severity.
               1 -- State.
               );
消息 50000,级别 16,状态 1,第 1 行

xxxx

3 severity

用户定义的与消息相关的严重级别,用户只能定义1-18的级别,大于 18 的错误严重级别只能由 sysadmin 角色的成员用 WITH LOG 选项指定。

4 state

 在sqlserver2008 中,有效范围是从 0 到 255,表示有关错误调用状态的信息,默认为1

 5

当使用 RAISERROR 创建和返回用户定义的错误信息时,使用 sp_addmessage 将用户定义的错误信息添加到sysmessages中使用,,使用 sp_dropmessage 删除sysmessages中用户定义的错误信息。

sp_addmessage   60000,15, "尝试" ,us_english

最后一个参数为语言表示

 删除信息:sp_dropmessage 60000,us_english

6 在程序调用过程中可以捕获到raiserror得到的异常

例如 c# 中

try {

}

catch (SqlException ex)

{

}

 vb中用on error ......

err.number ,err.description.....来获得错误信息

 

posted @ 2011-11-17 16:42  银杏叶儿  Views(630)  Comments(0Edit  收藏  举报