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