Devuelve el número de filas afectadas por la última instrucción. Si el número de filas es mayor de dos mil millones, useROWCOUNT_BIG.
Se aplica a: SQL Server (SQL Server 2008 a versión actual), Windows Azure SQL Database (Versión inicial a versión actual). |
- Establecer @@ROWCOUNT en el número de filas afectadas o leídas. Las filas pueden o no enviarse al cliente.
- Conservar @@ROWCOUNT de la anterior ejecución de una instrucción.
- Restablecer @@ROWCOUNT en 0 y no devolver el valor al cliente.
Las instrucciones que realizan una asignación simple siempre establecen el valor @@ROWCOUNT en 1. No se envían filas al cliente. Ejemplos de estas instrucciones son: SET @local_variable, RETURN, READTEXT y Select sin instrucciones de consulta como SELECT GETDATE() o SELECT ‘Generic Text‘.
Las instrucciones que realizan una asignación en una consulta o utilizan RETURN en una consulta establecen el valor @@ROWCOUNT en el número de filas afectadas o leídas por la consulta, por ejemplo: SELECT @local_variable = c1 FROM t1.
Las instrucciones de lenguaje de manipulación de datos (DML) establecen el valor de @@ROWCOUNT en el número de filas afectadas por la consulta y devuelven ese valor al cliente. Las instrucciones DML pueden no enviar ninguna fila al cliente.
DECLARE CURSOR y FETCH establecen el valor de @@ROWCOUNT en 1.
Las instrucciones EXECUTE conservan el valor anterior de @@ROWCOUNT.
Las instrucciones como USE, SET <opción>, DEALLOCATE CURSOR, CLOSE CURSOR, BEGIN TRANSACTION o COMMIT TRANSACTION restablecen el valor de ROWCOUNT en 0.
Los procedimientos almacenados compilados de forma nativa mantienen el @@ROWCOUNT anterior. Las instrucciones de Transact-SQL dentro de procedimientos almacenados compilados de forma nativa no establecen @@ROWCOUNT. Para obtener más información, vea Introducción a los procedimientos almacenados compilados de forma nativa.
USE AdventureWorks2012; GO UPDATE HumanResources.Employee SET JobTitle = N'Executive' WHERE NationalIDNumber = 123456789 IF @@ROWCOUNT = 0 PRINT 'Warning: No rows were updated'; GO