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

SI APPLICA A: sìSQL Server sìDatabase SQL di Azure sìAzure SQL Data Warehouse sìParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Provoca l'arresto dell'elaborazione della query in SQL ServerSQL Server dopo che è stato restituito il numero di righe specificato.Causes SQL ServerSQL Server to stop processing the query after the specified number of rows are returned.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintassiSyntax

SET ROWCOUNT { number | @number_var }   

ArgomentiArguments

number | @number_varnumber | @number_var
Numero intero di righe da elaborare prima dell'arresto della query specifica.Is the number, an integer, of rows to be processed before stopping the specific query.

RemarksRemarks

Importante

L'utilizzo di SET ROWCOUNT non avrà effetto sulle istruzioni DELETE, INSERT e UPDATE in una versione futura di SQL Server.Using SET ROWCOUNT will not affect DELETE, INSERT, and UPDATE statements in a future release of SQL Server. Evitare di utilizzare l'opzione SET ROWCOUNT con le istruzioni DELETE, INSERT e UPDATE in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.Avoid using SET ROWCOUNT with DELETE, INSERT, and UPDATE statements in new development work, and plan to modify applications that currently use it. Per un comportamento simile, utilizzare la sintassi TOP.For a similar behavior, use the TOP syntax. Per altre informazioni, vedere TOP (Transact-SQL).For more information, see TOP (Transact-SQL).

Per disattivare questa opzione in modo che vengano restituite tutte le righe, specificare SET ROWCOUNT 0.To set this option off so that all rows are returned, specify SET ROWCOUNT 0.

L'impostazione dell'opzione SET ROWCOUNT comporta l'arresto della maggior parte delle istruzioni Transact-SQLTransact-SQL quando queste raggiungono il numero di righe specificato.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. Sono inclusi i trigger.This includes triggers. L'opzione ROWCOUNT non ha effetto sui cursori dinamici, ma limita il set di righe dei cursori di tipo KEYSET e INSENSITIVE.The ROWCOUNT option does not affect dynamic cursors, but it does limit the rowset of keyset and insensitive cursors. Utilizzare questa opzione con cautela.This option should be used with caution.

L'opzione SET ROWCOUNT è prioritaria rispetto alla parola chiave TOP dell'istruzione SELECT se il conteggio delle righe corrisponde a un valore inferiore.SET ROWCOUNT overrides the SELECT statement TOP keyword if the rowcount is the smaller value.

L'opzione SET ROWCOUNT viene impostata in fase di esecuzione, non in fase di analisi.The setting of SET ROWCOUNT is set at execute or run time and not at parse time.

AutorizzazioniPermissions

È richiesta l'appartenenza al ruolo public.Requires membership in the public role.

EsempiExamples

L'opzione SET ROWCOUNT consente di arrestare l'elaborazione dopo il numero di righe specificato.SET ROWCOUNT stops processing after the specified number of rows. Nell'esempio seguente si noti come oltre 500 righe soddisfino i criteri di Quantity minore di 300.In the following example, note that over 500 rows meet the criteria of Quantity less than 300. Dopo avere applicato SET ROWCOUNT, tuttavia, si noterà come non siano state restituite tutte le righe.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  

Set di risultati:Here is the result set.

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

(1 row(s) affected)

Impostare quindi ROWCOUNT su 4 e restituire tutte le righe per dimostrare come vengano restituite solo 4 righe.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)

Esempi: Azure SQL Data WarehouseAzure SQL Data Warehouse e Parallel Data WarehouseParallel Data WarehouseExamples: Azure SQL Data WarehouseAzure SQL Data Warehouse and Parallel Data WarehouseParallel Data Warehouse

L'opzione SET ROWCOUNT consente di arrestare l'elaborazione dopo il numero di righe specificato.SET ROWCOUNT stops processing after the specified number of rows. Nell'esempio seguente più di 20 righe soddisfano il criterio AccountType = 'Assets'.In the following example, note that more than 20 rows meet the criteria of AccountType = 'Assets'. Dopo avere applicato SET ROWCOUNT, tuttavia, si noterà come non siano state restituite tutte le righe.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';  

Per restituire tutte le righe, impostare ROWCOUNT su 0.To return all rows, set ROWCOUNT to 0.

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

Vedere ancheSee Also

Istruzioni SET (Transact-SQL)SET Statements (Transact-SQL)