@@ROWCOUNT (Transact-SQL)@@ROWCOUNT (Transact-SQL)

SE APLICA A: síSQL Server síAzure SQL Database noAzure Synapse Analytics (SQL DW) noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Devuelve el número de filas afectadas por la última instrucción.Returns the number of rows affected by the last statement. Si el número de filas superior a dos mil millones, use ROWCOUNT_BIG.If the number of rows is more than 2 billion, use ROWCOUNT_BIG.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

@@ROWCOUNT  

Tipos devueltosReturn Types

intint

NotasRemarks

Las instrucciones Transact-SQLTransact-SQL pueden establecer el valor de @@ROWCOUNT de las siguientes maneras:Transact-SQLTransact-SQL statements can set the value in @@ROWCOUNT in the following ways:

  • Establecer @@ROWCOUNT en el número de filas afectadas o leídas.Set @@ROWCOUNT to the number of rows affected or read. Las filas pueden o no enviarse al cliente.Rows may or may not be sent to the client.

  • Conservar @@ROWCOUNT de la anterior ejecución de una instrucción.Preserve @@ROWCOUNT from the previous statement execution.

  • Restablecer @@ROWCOUNT en 0 y no devolver el valor al cliente.Reset @@ROWCOUNT to 0 but do not return the value to the client.

Las instrucciones que realizan una asignación simple siempre establecen el valor @@ROWCOUNT en 1.Statements that make a simple assignment always set the @@ROWCOUNT value to 1. No se envían filas al cliente.No rows are sent to the client. Estos son algunos ejemplos de estas instrucciones: SET @local_variable, RETURN, READTEXT y seleccione instrucciones sin consulta como SELECT GETDATE() o SELECT 'Texto genérico' .Examples of these statements are: SET @local_variable, RETURN, READTEXT, and select without query statements such as SELECT GETDATE() or SELECT 'Generic Text'.

Las instrucciones que realizan una asignación en una consulta o usan 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.Statements that make an assignment in a query or use RETURN in a query set the @@ROWCOUNT value to the number of rows affected or read by the query, for example: 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.Data manipulation language (DML) statements set the @@ROWCOUNT value to the number of rows affected by the query and return that value to the client. Las instrucciones DML pueden no enviar ninguna fila al cliente.The DML statements may not send any rows to the client.

DECLARE CURSOR y FETCH establecen el valor de @@ROWCOUNT en 1.DECLARE CURSOR and FETCH set the @@ROWCOUNT value to 1.

Las instrucciones EXECUTE conservan el valor anterior de @@ROWCOUNT.EXECUTE statements preserve the previous @@ROWCOUNT.

Las instrucciones como USE, SET <opción>, DEALLOCATE CURSOR, CLOSE CURSOR, PRINT, RAISERROR, BEGIN TRANSACTION o COMMIT TRANSACTION restablecen el valor de ROWCOUNT en 0.Statements such as USE, SET <option>, DEALLOCATE CURSOR, CLOSE CURSOR, PRINT, RAISERROR, BEGIN TRANSACTION, or COMMIT TRANSACTION reset the ROWCOUNT value to 0.

Los procedimientos almacenados compilados de forma nativa mantienen el @@ROWCOUNT anterior.Natively compiled stored procedures preserve the previous @@ROWCOUNT. Las instrucciones Transact-SQLTransact-SQL dentro de procedimientos almacenados compilados de forma nativa no establecen @@ROWCOUNT.Transact-SQLTransact-SQL statements inside natively compiled stored procedures do not set @@ROWCOUNT. Para más información, vea Procedimientos almacenados compilados de forma nativa.For more information, see Natively Compiled Stored Procedures.

EjemplosExamples

En el siguiente ejemplo se ejecuta una instrucción UPDATE y se utiliza @@ROWCOUNT para detectar si ha cambiado alguna fila.The following example executes an UPDATE statement and uses @@ROWCOUNT to detect if any rows were changed.

USE AdventureWorks2012;  
GO  
UPDATE HumanResources.Employee   
SET JobTitle = N'Executive'  
WHERE NationalIDNumber = 123456789  
IF @@ROWCOUNT = 0  
PRINT 'Warning: No rows were updated';  
GO  

Consulte tambiénSee Also

Funciones del sistema (Transact-SQL) System Functions (Transact-SQL)
SET ROWCOUNT (Transact-SQL)SET ROWCOUNT (Transact-SQL)