为啥@@error 总是0呢?

beyondjay 2008-07-14 11:00:18
一个大存储过程,里面调用了小的过程
小过程catch块里面
RAISERROR( @error_message, @error_severity, 1) with seterror
我用vs调试的时候,@@error = 50000
正常。
但是跳到大的程序里面@@error = 0,奇怪阿,我raiseerror了怎么还是0呢?
...全文
261 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwd252 2008-07-15
  • 打赏
  • 举报
回复
把代码贴出来啊
Garnett_KG 2008-07-15
  • 打赏
  • 举报
回复
@@ERROR 判断的是上一条语句执行是否成功,不是上一个批次
lff642 2008-07-15
  • 打赏
  • 举报
回复
@@ERROR
返回最后执行的 Transact-SQL 语句的错误代码。

语法
@@ERROR

返回类型
integer

注释
当 Microsoft® SQL Server™ 完成 Transact-SQL 语句的执行时,如果语句执行成功,则 @@ERROR 设置为 0。若出现一个错误,则返回一条错误信息。@@ERROR 返回此错误信息代码,直到另一条 Transact-SQL 语句被执行。您可以在 sysmessages 系统表中查看与 @@ERROR 错误代码相关的文本信息。

由于 @@ERROR 在每一条语句执行后被清除并且重置,应在语句验证后立即检查它,或将其保存到一个局部变量中以备事后查看。

wgzaaa 2008-07-15
  • 打赏
  • 举报
回复
这个帖子不是结了吗,怎么还放这里让大家辛苦?
http://topic.csdn.net/u/20080714/11/4141947a-8583-4aa1-9993-a345f8d4d107.html
  • 打赏
  • 举报
回复
[Quote=引用楼主 beyondjay 的帖子:]
一个大存储过程,里面调用了小的过程
小过程catch块里面
RAISERROR( @error_message, @error_severity, 1) with seterror
我用vs调试的时候,@@error = 50000
正常。
但是跳到大的程序里面@@error = 0,奇怪阿,我raiseerror了怎么还是0呢?
[/Quote]

可能是这样的:
在你的小过程里面发生了错误,当然会产生错误@@error=50000,但是你的程序里面有错误处理程序,使用catch把程序错误处理了,错误处理成功后,对与大存储过程来说是一个成功的执行过程,因为错误已经处理了,所以@@error=0
tianhuo_soft 2008-07-15
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 pgy8288 的回复:]
路过
[/Quote]
ChinaJiaBing 2008-07-15
  • 打赏
  • 举报
回复
你设置的提示信息。。。。。。。。。。。。。。
ojuju10 2008-07-14
  • 打赏
  • 举报
回复

@@error=0 表示成功,否则就不等于0
中国风 2008-07-14
  • 打赏
  • 举报
回复
@@error--訊息的識別碼
參照:
select * from master..sysmessages
hery2002 2008-07-14
  • 打赏
  • 举报
回复
你把整个代码贴出来看看啦,
如果代码过长,
帖关键的 :)
beyondjay 2008-07-14
  • 打赏
  • 举报
回复
一个大存储过程,里面调用了小的过程
小过程catch块里面
RAISERROR( @error_message, @error_severity, 1) with seterror
我用vs调试的时候,@@error = 50000--小的存储过程里面的@error在raiserror之后是不等于0的
正常。
但是跳到大的程序里面@@error = 0,奇怪阿,我raiseerror了怎么还是0呢?
--但是跑到外面的时候@@error就变成0了阿
hery2002 2008-07-14
  • 打赏
  • 举报
回复
没懂意思~
pgy8288 2008-07-14
  • 打赏
  • 举报
回复
路过
hanjs 2008-07-14
  • 打赏
  • 举报
回复
路过,帮顶!
zoffor 2008-07-14
  • 打赏
  • 举报
回复
是不是error级别太低啊。
ps:乱说的
nzperfect 2008-07-14
  • 打赏
  • 举报
回复
看不懂
ojuju10 2008-07-14
  • 打赏
  • 举报
回复

@@error 作为系统的一个全局变量,不能够赋值的
rainlovesea 2008-07-14
  • 打赏
  • 举报
回复
我用vs调试的时候,@@error = 50000
这是什么意思,结果还是赋值
正宗老冉 2008-07-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 utpcb 的回复:]
你打程序执行的是成功的酒是0
[/Quote]
utpcb 2008-07-14
  • 打赏
  • 举报
回复
你打程序执行的是成功的酒是0

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧