sqlrver数据库中rairror函数⽤法的详细介绍
sql rver数据库中rairror函数的⽤法
敌人英语rver中rairror的作⽤就和asp中的throw new Exception⼀样,⽤于抛出⼀个异常或错误。这个错误可以被程序捕捉到。rairror的常⽤格式如下:
rairror('错误的描述',错误的严重级别代码,错误的标识,错误的描述中的参数的值(这个可以是多个),⼀些其它参数),在官⽅上的格式描述如下:
RAISERROR ( { msg_id | msg_str | @local_variable }
{ ,verity ,state }
[ ,argument [ ,...n ] ] )
[ WITH option [ ,...n ] ]
钢筋混凝土英语
其中,[ ,argument [ ,...n ] ]与 [ WITH option [ ,...n ] 两项是可以不写的。
分别解释⼀下各参数的⽤法:
⼀、{ msg_id | msg_str | @local_variable }
从这个参数中可以看出,这⼀项可能为三个值,
ssages中的⾃定义错误信息的错误信息号,⾃定义错误信息可以使⽤sp_addmessage存储过程添加到ssages 中,注意, ⽤户定义错误消息的错误号应当⼤于 50000。
⽰例:rairror(50001,16,1)
2,⼀条直接的错误描述,⽰例:rairror('这⾥是错误描述的⽰例',16,1)
3,⼀个包含错误描述变量,⽰例:
declare @error_mes varchar(1000)
dcs是什么意思t @error_mes='这⾥是错误描述的⽰例'
rairror(@error_mes,16,1)
⼆、verity
这个参数为⽤户定义的该错误信息的级别,我们可以指定 0 到 18 之间的严重级别。只有 sysadmin 固定服务器⾓⾊成员或具有 ALTER TRACE 权限的⽤户才能指定 19 到 25 之间的严重级别。若要使⽤ 19 到 25 之间的严重级别,必须选择 WITH LOG 选项。
注意,如果错误级别在20~25之间,那么数据库会认为这个错误是致命,那么数据库会将该错误记录到错误⽇志和应⽤程序⽇志后终⽌数据库的连接。任何⼩于 0 的严重级别被认为等于0。⼤于 25 的严重级别被认为等于25。
三、state
这个参数是可以是1~127之间任意整数,可以⽤来标识错误的发⽣位置,如果⼀段代码的多个位置都会发⽣同样的错误,那么就可以将这个参数设置为不同的值,⽤来标识是那个位
loneliness置发⽣错误了。
四、[ ,argument [ ,...n ] ]
japane 40成熟matter如果参数{ msg_id | msg_str | @local_variable }中包含了⼀些代替符,那么这个参数就是代替符的具体的值,这个和asp中的string.Format⽤法是⼀样的。⽰例如下:
declare @error_mes varchar(1000)
t @error_mes='这⾥是⽤户%s引发的错误描述'
rairror(@error_mes,16,1,'张三')
也可以是这样,可能适⽤性更⼴些。
declare @error_mes varchar(1000)
declare @error_obj varchar(1000)
lect @error_obj=name from table_urs where……
t @error_mes='这⾥是⽤户%s引发的错误描述'
rairror(@error_mes,16,1,@error_obj)
上⾯代码中的%s,代表它要替代是⼀个字符串,如果我们把⽰例写成下⾯这样就会报错了:
培训班名称
declare @error_mes varchar(1000)
t @error_mes='这⾥是⽤户%s引发的错误描述'
rairror(@error_mes,16,1,1)
因为1不是⼀个字符串,如果要替代是⼀个整数,就需要使⽤%i或者%d了。所有的对应关系如下:
1,%d或%i代表有符号整数
2,%u代表⽆符号整数
3,%o代表⽆符号⼋进制数
4,%s代表字符串
5,%x或%X代表⽆符号⼗六进制数
五、[ WITH option [ ,...n ] ]
该参数为错误的⾃定义选项,可以是下⾯三个值中的⼀个:
1,LOG--在 Microsoft SQL Server 数据库引擎实例的错误⽇志和应⽤程序⽇志中记录错误。记录到错误⽇志的错误⽬前被限定为最多 440 字节。只有 sysadmin 固定服务器⾓⾊
falling alicia keys成员或具有 ALTER TRACE 权限的⽤户才能指定 WITH LOG。
kissgoodbye歌词
2,NOWAIT--将消息⽴即发送给客户端。
3,SETERROR--将 @@ERROR 值和 ERROR_NUMBER 值设置为 msg_id 或 50000,不⽤考虑严重级别。
what do you think我们还可以在Begin catch中使⽤rairror。⽰例如下:
begin try
rairror('这是⼀个错误',16,1) //注意,只有verity级别在11~19之间,控制才会跳转到catch块中。
end try
begin catch
rabbitholedeclare @error_message varchar(1000)
t @error_message=error_message()
rairror(@error_message,16,1)
return
end catch
到此这篇关于sql rver数据库中rairror函数⽤法的详细介绍的⽂章就介绍到这了,更多相关sql rver中rairror函数⽤法内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!