SET ROWCOUNT (Transact-SQL)SET ROWCOUNT (Transact-SQL)

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

Hace que SQL ServerSQL Server detenga el procesamiento de la consulta una vez que se han devuelto las filas especificadas.Causes SQL ServerSQL Server to stop processing the query after the specified number of rows are returned.

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

SintaxisSyntax

SET ROWCOUNT { number | @number_var }   

ArgumentosArguments

number | @number_varnumber | @number_var
Es el número entero de filas que se deben procesar antes de detener la consulta específica.Is the number, an integer, of rows to be processed before stopping the specific query.

NotasRemarks

Importante

La utilización de SET ROWCOUNT no afectará a las instrucciones DELETE, INSERT ni UPDATE en una futura versión de SQL Server.Using SET ROWCOUNT will not affect DELETE, INSERT, and UPDATE statements in a future release of SQL Server. Evite utilizar SET ROWCOUNT con las instrucciones DELETE, INSERT y UPDATE en los nuevos trabajos de desarrollo, y modifique las aplicaciones que la utilizan en la actualidad.Avoid using SET ROWCOUNT with DELETE, INSERT, and UPDATE statements in new development work, and plan to modify applications that currently use it. Para conseguir un comportamiento similar, utilice la sintaxis TOP.For a similar behavior, use the TOP syntax. Para más información, vea TOP (Transact-SQL).For more information, see TOP (Transact-SQL).

Para desactivar esta opción con el fin de que se devuelvan todas las filas, especifique SET ROWCOUNT 0.To set this option off so that all rows are returned, specify SET ROWCOUNT 0.

Al establecer la opción SET ROWCOUNT, la mayoría de las instrucciones Transact-SQLTransact-SQL dejarán de procesarse cuando se haya alcanzado el número de filas especificado.Setting the SET ROWCOUNT option causes most Transact-SQLTransact-SQL statements to stop processing when they have been affected by the specified number of rows. Esto incluye a los desencadenadores.This includes triggers. La opción ROWCOUNT no afecta a los cursores dinámicos, pero limita el conjunto de filas de los cursores controlados por conjunto de claves e INSENSITIVE.The ROWCOUNT option does not affect dynamic cursors, but it does limit the rowset of keyset and insensitive cursors. Esta opción debe utilizarse con cautela.This option should be used with caution.

SET ROWCOUNT invalida la palabra clave TOP de la instrucción SELECT si el recuento de filas es el valor mínimo.SET ROWCOUNT overrides the SELECT statement TOP keyword if the rowcount is the smaller value.

La opción SET ROWCOUNT se establece en tiempo de ejecución, no en tiempo de análisis.The setting of SET ROWCOUNT is set at execute or run time and not at parse time.

PermisosPermissions

Debe pertenecer al rol public.Requires membership in the public role.

EjemplosExamples

SET ROWCOUNT detiene el procesamiento cuando se alcanza el número de filas especificado.SET ROWCOUNT stops processing after the specified number of rows. En el ejemplo siguiente se observa que más de 500 filas cumplen los criterios de Quantity menor que 300.In the following example, note that over 500 rows meet the criteria of Quantity less than 300. Sin embargo, después de aplicar SET ROWCOUNT, se puede ver que no se devolvieron todas las filas.However, after applying SET ROWCOUNT, you can see that not all rows were returned.

USE AdventureWorks2012;  
GO  
SELECT count(*) AS Count  
FROM Production.ProductInventory  
WHERE Quantity < 300;  
GO  

El conjunto de resultados es el siguiente.Here is the result set.

Count 
----------- 
537 

(1 row(s) affected)

Ahora, se establece ROWCOUNT en 4 y se devuelven todas las filas para mostrar que solo se devuelven 4 filas.Now, set ROWCOUNT to 4 and return all rows to demonstrate that only 4 rows are returned.

SET ROWCOUNT 4;  
SELECT *  
FROM Production.ProductInventory  
WHERE Quantity < 300;  
GO  
  
(4 row(s) affected)

Ejemplos: Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW) y Almacenamiento de datos paralelosParallel Data WarehouseExamples: Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW) and Almacenamiento de datos paralelosParallel Data Warehouse

SET ROWCOUNT detiene el procesamiento cuando se alcanza el número de filas especificado.SET ROWCOUNT stops processing after the specified number of rows. En este ejemplo, fíjese en que hay más de 20 filas que cumplen los criterios de AccountType = 'Assets'.In the following example, note that more than 20 rows meet the criteria of AccountType = 'Assets'. Sin embargo, después de aplicar SET ROWCOUNT, se puede ver que no se devolvieron todas las filas.However, after applying SET ROWCOUNT, you can see that not all rows were returned.

-- Uses AdventureWorks  
  
SET ROWCOUNT 5;  
SELECT * FROM [dbo].[DimAccount]  
WHERE AccountType = 'Assets';  

Para devolver todas las filas, establezca ROWCOUNT en 0.To return all rows, set ROWCOUNT to 0.

-- Uses AdventureWorks  
  
SET ROWCOUNT 0;  
SELECT * FROM [dbo].[DimAccount]  
WHERE AccountType = 'Assets';  

Consulte tambiénSee Also

Instrucciones SET (Transact-SQL)SET Statements (Transact-SQL)