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

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

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

例如:

UPDATE  dbo.Employee
SET EmpNo = EmpNo
WHERE 1=2
IF @@ROWCOUNT = 0
PRINT '没有数据被修改';
GO

执行结果是:


(0 行受影响)
没有数据被修改

UPDATE  dbo.Employee
SET EmpNo = EmpNo
WHERE 1=1 --修改为全部执行
IF @@ROWCOUNT = 0
PRINT '没有数据被修改';
GO

执行结果是:


(1135 行受影响)

05-11 18:13