日期:2014-05-19  浏览次数:20494 次

请问@@error和raiserror有什么区别
请问@@error和raiserror有什么区别

看书没有看明白,感谢

------解决方案--------------------
@@error :错误号

raiserror:产生一个错误

一个是名词,一个是动词
------解决方案--------------------
楼上解释的有点意思,呵呵。
可以这么理解
------解决方案--------------------
当 Microsoft® SQL Server™ 完成 Transact-SQL 语句的执行时,如果语句执行成功,则 @@ERROR 设置为 0。若出现一个错误,则返回一条错误信息。@@ERROR 返回此错误信息代码,直到另一条 Transact-SQL 语句被执行。您可以在 sysmessages 系统表中查看与 @@ERROR 错误代码相关的文本信息。
由于 @@ERROR 在每一条语句执行后被清除并且重置,应在语句验证后立即检查它,或将其保存到一个局部变量中以备事后查看。
返回用户定义的错误信息并设系统标志,记录发生错误。通过使用 RAISERROR 语句,客户端可以从 sysmessages 表中检索条目,或者使用用户指定的严重度和状态信息动态地生成一条消息。这条消息在定义后就作为服务器错误信息返回给客户端。


和尚说的有道理
------解决方案--------------------
第三段是对RAISERROR的解释
------解决方案--------------------
mark
------解决方案--------------------
@@error只是判断最新操作是否有错误,
而raiserror而是返回客户端一个错误信号,@@error是一个全局变量而矣.要通过客户端写程序来捕捉它.
------解决方案--------------------
一个是返回错误
一个是抛出错误
------解决方案--------------------
帮你顶