关于@@ROWCOUNT和@@ERROR的概述

@@ROWCOUNT
SQL Server中@@ROWCOUNT返回受上一语句影响的行数,返回值类型为 int 整型。 如果行数大于 20 亿,则需要使用 ROWCOUNT_BIG。

@@ROWCOUNT和@@ERROR变量的值,在执行完一条语句后总是会发生变化,所以我们将他们作为判断的依据的时候应该首先保存在局部变量中。他们反映的都是紧接着的上一条语句对他们的影响!

我们通常可以通过update、insert语句并使用@@ROWCOUNT来检测是否更改了任何一些行。

下面介绍一个使用@@ROWCOUNT的实例:

 update SNS_TopicData set TopicCount=TopicCount+1 where Topic =''1'' 
 if @@rowcount>0 
 begin 
 print ''成功'' 
 end 
 else 
 begin 
 print ''失败'' 
 end 

@@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,因为这句话也没有发生错误!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值