Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Database
Instancia
administrada de Azure SQLBase de datos SQL en Microsoft Fabric
Devuelve el número de filas afectadas por la última instrucción. Si el número de filas superior a dos mil millones, use ROWCOUNT_BIG.
Convenciones de sintaxis de Transact-SQL
Sintaxis
@@ROWCOUNT
Tipos de valores devueltos
int
Comentarios
Las instrucciones Transact-SQL pueden establecer el valor de @@ROWCOUNT las maneras siguientes:
- Establezca
@@ROWCOUNTen el número de filas afectadas o leídas. Es posible que las filas se envíen o no al cliente. - Conservar
@@ROWCOUNTde la ejecución de la instrucción anterior. - Restablezca
@@ROWCOUNTa 0, pero no devuelva el valor al cliente.
Las instrucciones que hacen una asignación simple siempre establecen el @@ROWCOUNT valor en 1. No se envían filas al cliente. Algunos ejemplos de estas instrucciones son: SET @local_variable, RETURN, READTEXTy select sin instrucciones de consulta como SELECT GETDATE() o SELECT '<Generic Text>'.
Instrucciones que realizan una asignación en una consulta o usan RETURN en una consulta establecen el valor en @@ROWCOUNT el número de filas afectadas o leídas por la consulta, por ejemplo: SELECT @local_variable = c1 FROM t1.
Las instrucciones del lenguaje de manipulación de datos (DML) establecen el @@ROWCOUNT valor en el número de filas afectadas por la consulta y devuelven ese valor al cliente. Es posible que las instrucciones DML no envíen ninguna fila al cliente.
DECLARE CURSOR y FETCH establezca el @@ROWCOUNT valor en 1.
EXECUTE Las instrucciones conservan el objeto anterior @@ROWCOUNT.
Instrucciones como USE, , SET <option>, DEALLOCATE CURSORCLOSE CURSOR, PRINT, RAISERROR, BEGIN TRANSACTIONo COMMIT TRANSACTION restablezca el ROWCOUNT valor a 0.
Los procedimientos almacenados compilados de forma nativa conservan el anterior @@ROWCOUNT. Las instrucciones Transact-SQL dentro de procedimientos almacenados compilados de forma nativa no establecen @@ROWCOUNT. Para más información, vea Procedimientos almacenados compilados de forma nativa.
Ejemplos
En el siguiente ejemplo se ejecuta una instrucción UPDATE y se utiliza @@ROWCOUNT para detectar si ha cambiado alguna fila.
USE AdventureWorks2022;
GO
UPDATE HumanResources.Employee
SET JobTitle = N'Executive'
WHERE NationalIDNumber = 123456789
IF @@ROWCOUNT = 0
PRINT 'Warning: No rows were updated';
GO