Sql Server 中的 @@ERROR

Posted 守护者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sql Server 中的 @@ERROR相关的知识,希望对你有一定的参考价值。

@@ERROR:当前一个语句遇到错误,则返回错误号,否则返回0。需要注意的是@ERROR在每一条语句执行后会被立刻重置,因此应该在要验证的语句执行后检查数值或者是将它保存到局部变量中以备将来使用。

 

DECLARE @num INT,@temp INT
DECLARE @err INT

SELECT @temp=0;
SET @err=0 
SET @num =2/@temp; 
 --执行后@@ERROR为8134

PRINT @@ERROR
 --执行后@@ERROR为0 
IF @@ERROR = 0 
BEGIN 
    PRINT @@ERROR 
END

分析:上面的SQL语句出现除0的错误,抛出错误信息,所以在执行除0语句后的@@Error数值是8134,但是在执行第一个Print @Error语句输出错误信息之后,注意,此时@@Error的数据立即变成了0!,这一点非常重要,因为@@Error在每一条语句执行后立刻被重置!同样的道理,执行IF @@ERROR = 0语句后@@ERROR的数值仍然是0,因为这句话也没有发生错误!

  

以上是关于Sql Server 中的 @@ERROR的主要内容,如果未能解决你的问题,请参考以下文章

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

Sql Server 中的 @@ERROR

SQL Server 中的事务和@@Error 函数

SQL server 获取异常

SQL Server中的全文搜索

SQL Server 中的临时表导致“已经有一个名为”的对象错误