mssql sqlserver 2005 RAISERROR函数用法简介


摘要:
下文主要讲述 RAISERROR函数的用法,并举例说明


目录:
RAISERROR功能及参数说明
RAISERROR举例应用



RAISERROR功能及参数说明

RAISERROR功能:在sql脚本中抛出一个错误,并指定抛出错误的级别
RAISERROR语法:

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


参数1:{ msg_id | msg_str | @local_variable }
msg_id:为从sys.messages表中获取的消息号码,通常不大于50000,用户也可以通过自定义消息的形式,向sys.message表中插入消息
msg_str:为 用户定义消息 ,消息长度不能大于2047字符,放入字符串请使用N’****’
@local_variable:指此处放入变量,变量类型为 nvarchar类型,变量不能大于2047个字符


参数2:
severity:用户自定义消息级别(此处需放入 0~18的整整数)
0~10,错误级别轻度,提示错误信息
11~19 错误级别中度,会被catch捕捉
>20错误级别,直接终止数据库连接


参数3:state
输入 1~127的任意整数 默认值为1
state为0或大于127,函数将发生错误


参数4:argument
字符处,用于替换msg_str中的变量信息


参数5:option
自定义错误的其它选项。
log:将错误信息写入日志
nowait:将错误消息发送至客户端
seterror:将msg_id值写入@@error中



RAISERROR举例应用

  ----自定义错误消息
  RAISERROR (
       N'这是一个错误消息 %s %d.', -- 错误消息定义变量 s d,
       10,            -- 级别,
       1,             -- 状态,
       N'参数一',         -- 第一个参数
       8            -- 第二个参数       
     ); 
     print @@error
     go
    ---自定义错误消息,并将msg_id返回至@@error全局变量中
  RAISERROR (
       N'这是一个错误消息 %s %d.', -- 错误消息定义变量 s d,
       10,            -- 级别,
       1,             -- 状态,
       N'参数一',         -- 第一个参数
       8            -- 第二个参数       
     ) with seterror; 
     print @@error
     go