返回受上一语句影响的行数。如果行数大于 20 亿,请使用 ROWCOUNT_BIG。
语法
@@ROWCOUNT
int
Transact-SQL 语句可以通过下列方式设置 @@ROWCOUNT 的值:
执行简单分配的语句始终将 @@ROWCOUNT 值设置为 1。不将任何行发送到客户端。这些语句的示例如下:SET @local_variable、RETURN、READTEXT 以及不带查询 Select 语句,如 SELECT GETDATE() 或 SELECT 'Generic Text'。
在查询中执行分配或使用 RETURN 的语句将 @@ROWCOUNT 值设置为受查询影响或由查询读取的行数,例如:SELECT @local_variable = c1 FROM t1。
数据操作语言 (DML) 语句将 @@ROWCOUNT 值设置为受查询影响的行数,并将该值返回到客户端。DML 语句不会将任何行发送到客户端。
DECLARE CURSOR 和 FETCH 将 @@ROWCOUNT 值设置为 1。
EXECUTE 语句保留前一个 @@ROWCOUNT。
USE、SET <option>、DEALLOCATE CURSOR、CLOSE CURSOR、BEGIN TRANSACTION 或 COMMIT TRANSACTION 等语句将 ROWCOUNT 值重置为 0。
以下示例执行
UPDATE
语句并使用
@@ROWCOUNT
来检测是否更改了任何一些行。
USE AdventureWorks2008R2;
GO UPDATE HumanResources.Employee SET JobTitle = N'Executive'
WHERE NationalIDNumber = 123456789
IF @@ROWCOUNT = 0
PRINT 'Warning: No rows were updated';
GO