http://www.yesky.com/imagesnew/software/tsql/ts_ra-rz_5ooi.htm

RAISERROR

返回用户定义的错误信息并设系统标志,记录发生错误。通过使用 RAISERROR 语句,客户端可以从 sysmessages 表中检索条目,或者使用用户指定的严重度和状态信息动态地生成一条消息。这条消息在定义后就作为服务器错误信息返回给客户端。

语法

RAISERROR ({ msg_id | msg_str} { , severity, state}

[ , argument[ ,...n] ] )

[ WITH option[ ,...n] ]

参数

msg_id

存储于 sysmessages 表中的用户定义的错误信息。用户定义错误信息的错误号应大于 50,000。由特殊消息产生的错误是第 50,000 号。

msg_str

是一条特殊消息,其格式与 C 语言中使用的 PRINTF 格式样式相似。此错误信息最多可包含 400

个字符。如果该信息包含的字符超过 400 个,则只能显示前 397 个并将添加一个省略号以表示该信息已被截断。所有特定消息的标准消息 ID 是

14,000。

msg_str支持下面的格式:

% [[flag] [width] [precision] [{h | l}]] type

可在 msg_str中使用的参数包括:

flag

用于确定用户定义的错误信息的间距和对齐的代码。

代码前缀或对齐描述

-(减)

左对齐

在给定字段宽度内左对齐结果。

+(加)

+(加)或 -(减)前缀

如果输出值为带符号类型,则在输出值的前面加上加号(+)或减号(-)。

0(零)

零填充

如果宽度的前面有 0,则添加零直到满足最小宽度。若出现 0 和 -,将忽略 0。若使用整型格式(i, u, x, X, o, d)指定 0,则忽略 0。

#(数字)

对 x 或 X 的十六进制类型使用 0x 前缀

当使用 o、x 或 X 格式时,# 标志在任何非零值的前面分别加上 0、0x 或 0X。当 d、i 或 u 的前面有 # 标记时,将忽略该标记。

' '(空格)

空格填充

如果输出值带符号且为正,则在该值前加空格。如果包含在加号(+)标记中,则忽略该标记。

width

定义最小宽度的整数。星号 (*) 允许 precision确定宽度。

precision

是输出字段最多输出的字符数,或为整数值输出的最小小数位数。星号 (*) 允许 argument确定精度。

{h | l} type

与字符类型 d、i、o、x、X 或 u 一起使用,用于创建 short int (h) 或 long int (l) 类型的值。

字符类型表示

d 或 I

带符号的整数

o

不带符号的八进制数

p

指针型

s

String

u

不带符号的整数

x 或 X

不带符号的十六进制数

说明  不支持float、双精度和单精度字符类型。

severity

用户定义的与消息关联的严重级别。用户可以使用从 0 到 18 之间的严重级别。19 到 25 之间的严重级别只能由 sysadmin 固定服务器角色成员使用。若要使用 19 到 25 之间的严重级别,必须选择 WITH LOG 选项。

注意  20 到 25 之间的严重级别被认为是致命的。如果遇到致命的严重级别,客户端连接将在收到消息后终止,并将错误记入错误日志和应用程序日志。

state

从 1 到 127 的任意整数,表示有关错误调用状态的信息。state的负值默认为 1。

argument

是用于取代在 msg_str 中定义的变量或取代对应于 msg_id 的消息的参数。可以有 0 或更多的替代参数;然而,替代参数的总数不能超过 20 个。每个替代参数可以是局部变量或这些任意数据类型:int1、int2、int4、char、varchar、binary 或 varbinary。不支持其它数据类型。

option

错误的自定义选项。option 可以是以下值之一:

值描述

LOG

将错误记入服务器错误日志和应用程序日志。记入服务器错误日志的错误目前被限定为最多 440 字节。

NOWAIT

将消息立即发送给客户端。

SETERROR

将 @@ERROR 的值设置为 msg_id 或 50000,与严重级别无关。

注释

如果使用 sysmessages错误并且是使用前面显示的 msg_str格式创建的消息,则将给所提供的 msg_id 的消息传递提供的参数(argument1、argument2 等等)。

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

当出现错误时,错误号将放在 @@ERROR 函数中,该函数存储最新生成的错误号。对于严重级别为 1 到 10 的消息,@@ERROR 的默认设置为0。

示例

A. 创建特定消息

下例显示可能出现的两种错误。第一种错误很简单,生成的是静态消息。第二种错误则是在尝试修改的基础上动态生成的。

CREATE TRIGGER employee_insupd

ON employee

FOR INSERT, UPDATE

AS

/* Get the range of level for this job type from the jobs table. */

DECLARE @@MIN_LVL tinyint,

@@MAX_LVL tinyint,

@@EMP_LVL tinyint,

@@JOB_ID smallint

SELECT @@MIN_LVl = min_lvl,

@@MAX_LV = max_lvl,

@@ EMP_LVL = i.job_lvl,

@@JOB_ID = i.job_id

FROM employee e, jobs j, inserted i

WHERE e.emp_id = i.emp_id AND i.job_id = j.job_id

IF (@@JOB_ID = 1) and (@@EMP_lVl <> 10)

BEGIN

RAISERROR ('Job id 1 expects the default level of 10.', 16, 1)

ROLLBACK TRANSACTION

END

ELSE

IF NOT @@ EMP_LVL BETWEEN @@MIN_LVL AND @@MAX_LVL)

BEGIN

RAISERROR ('The level for job_id:%d should be between %d and %d.',

16, 1, @@JOB_ID, @@MIN_LVL, @@MAX_LVL)

ROLLBACK TRANSACTION

END

B. 在 sysmessages 中创建特殊消息

下例显示如何通过执行 employee_insupd触发器获得与 RAISERROR 相同的效果,而 RAISERROR 使用给存储在 sysmessages表中的消息传递参数的方法。该消息通过 sp_addmessage 系统存储过程,以消息号 50005 被添加到 sysmessages 表中。

说明  下例仅供举例说明。

RAISERROR (50005, 16, 1, @@JOB_ID, @@MIN_LVL, @@MAX_LVL)

raiserror 在 java_Sql 的 RAISERROR用法相关推荐

  1. raiserror 在 java_SQL 抛出异常错误信息- RAISERROR (存储过程)

    SQL 抛出异常错误信息- RAISERROR  (存储过程) 1.描述:生成错误消息并启动会话的错误处理.RAISERROR可以引用存储在系统消息目录视图或动态生成消息.该消息将作为服务器错误消息返 ...

  2. SQL Server 中 RAISERROR 的用法 raiserror 是由单词 raise error 组成 raise 增加; 提高; 提升 raiserror 的作用: r

    SQL Server 中 RAISERROR 的用法 raiserror  是由单词 raise error 组成      raise  增加; 提高; 提升 raiserror 的作用: rais ...

  3. SQL Server 中 RAISERROR 的用法

    raiserror  是由单词 raise error 组成      raise  增加; 提高; 提升 raiserror 的作用: raiserror 是用于抛出一个错误.[ 以下资料来源于sq ...

  4. mysql raiserror_sql server RAISERROR用法介绍

    raiserror  是由单词 raise error 组成 raise  增加; 提高; 提升 raiserror 的作用: raiserror 是用于抛出一个错误. 其语法如下: RAISERRO ...

  5. SQL 中 RAISERROR 的用法

    raiserror  是由单词 raise error 组成      raise  增加; 提高; 提升 raiserror 的作用: raiserror 是用于抛出一个错误.[ 以下资料来源于sq ...

  6. RAISERROR 的用法(转)

    raiserror 的作用: raiserror 是用于抛出一个错误.[ 以下资料来源于sql server 2005的帮助 ] 其语法如下: RAISERROR ( { msg_id | msg_s ...

  7. sql raiserror_SQL Server PRINT和SQL Server RAISERROR语句

    sql raiserror This article explores the SQL Server PRINT statements, and its alternative SQL Server ...

  8. SQL Server - THROW字句对比RAISERROR子句

    SQL Server 2012开始引入了THROW字句用于替代从SQL Server开始沿用至今的RAISERROR.既然作用相同,都是在TRY... CATCH代码块后不抓错误然后抛出错误,它们之间 ...

  9. SQL中 raiserror使用

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

最新文章

  1. linux操作系统的特点有哪些,LINUX操作系统有哪些概念和特点?
  2. 设计模式-组合+策略模式
  3. ORACLE 日期查询
  4. Git 撤销操作 / 回滚历史
  5. uva 11536——Smallest Sub-Array
  6. 计网复习第三章part one
  7. 米思齐_米思齐公益培训之交互式图形设计与数据分析圆满落幕
  8. iOS运行出现No application was specified.
  9. centos7安装mplayer+smplayer
  10. 校园宽带客户端认证程序无法继续初始化绑定通信接口网络地址失败_解决办法
  11. 经典DSR路由协议分析:路由发现
  12. php工具能自动出代码的,打造自己的PHP半自动化代码审计工具
  13. 必学PHP类库/常用PHP类库大全
  14. 【专升本计算机】甘肃省专升本考试公共课计算机填空题考点汇总
  15. 一、自定义一个竖直Layout
  16. 公司新来了个00后测试工程师,一副毛头小子的样儿,哪想到是新一代卷王...
  17. 【ROM定制】官改教程:super.img解打包!
  18. 哎!无奈,遇到DDos到底应该怎么办?阿里云将你扔进黑洞;腾讯云清退你!
  19. arch linux添加用户,Arch Linux配置教程
  20. 实时操作系统和分时操作系统之间的区别是什么

热门文章

  1. python每条语句以什么结尾_Python程序设计中一行可以写____条语句,每条语句以____结束。...
  2. linux common comand
  3. 文件上传下载导入导出
  4. 前端工程师如何突破瓶颈期
  5. 全球与中国电磁波吸收材料市场发展态势与前景策略分析报告2022-2028年
  6. 同时介绍两个对象怎么办_“相亲对象好着急,认识第一天就干出这事?”哈哈哈哈哈我该怎么办|哈哈哈哈哈|相亲|情侣|借钱|电子厂...
  7. OpenStack简述
  8. SpringBoot之首页与图标定制
  9. 一家航空公司为了保障安全 用计算机,旅客运输组织复习题11
  10. 绿地五里桥 设计原型_【新时代文明实践】世博十年,满满回忆!一张地图回顾五里桥的十年变迁史!...