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.....来获得错误信息