有人知道SQL的RAISERROR的怎么应用吗?

帮助 我看过了
但是看不懂
第一个参数是自定义的参数是什么意思,错误号又是怎么回事啊?该如何定义呢
第二个和第三个参数 该怎么写 级别和状态分别有什么含义?
最好举个例子 并明确说明三个参数的含义
不胜感激!
有追加的赏分的!
谢谢

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

上面是引用了联机丛书中raiserror的定义。
其实看了定义也就不该说第几个了,但是按照常用的理解,就按照你的思路来说吧。

第一个参数:msg_id,自定义错误号应该大于50000,以前在vb中实现了一把,raiserror的这个错误号确实可以被捕获的,看看sql中多少函数跟vb想象,这点就可以理解了;msg_str,错误信息提示,里面可以用格式修饰符,将后面的参数数组相对应的值返回。相应于vb,err.number可以取msg_id,而err.description可以取msg_str了。

第二个参数:这里通常是定义安全级别跟错误状态的,相应的可以参考联机丛书,我就不粘出来了。

第三个参数:[ , argument [ ,...n ] ],参数组,对应msg_str进行输出。

举一个操作pubs中表jobs的例子,在表中搜索max_lvl大于1000的信息,如果没有则返回一条错误:
-------------------------------------------------------------
use pubs
declare @count int
select @count=count(*) from jobs where max_lvl>1000
if @count=0
raiserror('有%d个max_lvl>1000的工作',16,1,@count)
-------------------------------------------------------------

执行后将返回:
-------------------------------------------------------------
服务器: 消息 50000,级别 16,状态 1,行 5
有0个max_lvl>1000的工作
-------------------------------------------------------------

希望能帮到你。
温馨提示:内容为网友见解,仅供参考
无其他回答

在sql里面raiserror有什么作用的啊?
RAISERROR是抛出SQL语句异常或错误的关键字,在存储过程里经常用到。用法:使用RAISERROR后需带三个参数,分别如下:RAISERROR(参数一,参数二,参数三)参数一:提示出错信息 参数二:错误的状态 参数三:错误的级别 例如:RAISERROR('过程执行出错,行【100】',16,1),16为状态,级别1,错误信息为:...

有人知道SQL的RAISERROR的怎么应用吗?
第一个参数:msg_id,自定义错误号应该大于50000,以前在vb中实现了一把,raiserror的这个错误号确实可以被捕获的,看看sql中多少函数跟vb想象,这点就可以理解了;msg_str,错误信息提示,里面可以用格式修饰符,将后面的参数数组相对应的值返回。相应于vb,err.number可以取msg_id,而err.description可...

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

raiserror相关信息
RAISERROR 是SQL Server中用于生成并返回自定义错误信息的函数,其语法如下:RAISERROR ( { msg_id | msg_str } { , severity , state } [ , argument [ ,...n ] ] ) [ WITH option [ ,...n ] ]其中:msg_id:用户在 sys.messages 表中定义的错误信息,必须大于50,000,特殊消息的...

sql中raiserror语句是做什么事的
此语句用于发出错误信号和向客户端发送消息。语法 raiserror error-number [ format-string ] [, arg-list ]raiserror('Error Message!',9,1)显示结果:消息 50000,级别 9,状态 1,第 1 行 'Error Message!不明白再问我,谢谢!

sql中“raiserror(4008,16,10)”语句是什么意思?里面的数字是什么意思...
RAISERROR 语句允许发出用户定义的错误并向客户端发送消息。权限 无。副作用 无。另请参见 CREATE TRIGGER 语句 [T-SQL]ON_TSQL_ERROR 选项 [compatibility]CONTINUE_AFTER_RAISERROR 选项 [compatibility]标准和兼容性 SQL\/92 Transact-SQL 扩展。SQL\/99 Transact-SQL 扩展。Sybase 受 Adaptive...

sql server 2005里的函数,例如raiserror('系统限制您最低只能打九折...
语法:RAISERROR ( { msg_id | msg_str } { , severity , state } [ , argument [ ,...n ] ] )[ WITH option [ ,...n ] ]参数说明:msg_id:存储于sysmessages表中的用户定义的错误信息。用户定义错误信息的错误号应大于50000。由特殊消息产生的错误是第50000号。msg_str:是一条...

sql 怎么用raiserror回滚数据
raiserror 是进行错误提示的 begin tran 语句 if @@error<>0 raiserror('语句未正常执行.请检查',16,1)rollback tran \/\/回滚操作.else commit tran

如何在sqlserver 的函数或存储过程中抛出异常
LOG :在错误日志和应用程序日志中记录错误;NOWAIT:将消息立即发送给客户端;SETERROR:将 @@ERROR 值和 ERROR_NUMBER 值设置为 msg_id 或 50000;[SQL]代码示例 --示例1DECLARE @raiseErrorCode nvarchar(50)SET @raiseErrorCode = CONVERT(nvarchar(50), YOUR UNIQUEIDENTIFIER KEY)RAISERROR('%s...

sql事务回滚插入年龄大于100或小于0,则事务回滚求代码
回答:事务回滚是用在触发器里面的吧: Create Trigger 触发器名称 On 表 for insert AS BEGIN TRANSACTION --提交事务处理 IF NOT EXISTS ( SELECT 年龄 FROM INSERTED where 年龄 >100 or 年龄 < 0 ) BEGIN --返回错误提示 RAISERROR(‟错误提示,年龄必须在0到100之间‟,16,1) ROLL...

相似回答