SET ROWCOUNT (Transact-SQL)
Provoca l'interruzione dell'elaborazione della query in SQL Server dopo che è stato restituito il numero di righe specificato.
Sintassi
SET ROWCOUNT { number | @number_var }
Argomenti
- number| **@**number_var
Numero di righe, valore integer, che si desidera elaborare prima dell'interruzione della query specificata.
Osservazioni
Importante |
---|
L'utilizzo di SET ROWCOUNT non avrà effetti sulle istruzioni DELETE, INSERT e UPDATE nella prossima versione di SQL Server. Non utilizzare 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. È inoltre consigliabile riscrivere le istruzioni DELETE, INSERT e UPDATE che attualmente utilizzano SET ROWCOUNT, per fare in modo che utilizzino la sintassi TOP. Per ulteriori informazioni, vedere DELETE (Transact-SQL), INSERT (Transact-SQL) o UPDATE (Transact-SQL). |
L'impostazione dell'opzione SET ROWCOUNT viene ignorata per le istruzioni INSERT, UPDATE e DELETE eseguite in tabelle remote e in viste partizionate locali e remote.
Per disattivare questa opzione in modo che vengano restituite tutte le righe, specificare SET ROWCOUNT 0.
[!NOTA]
L'impostazione dell'opzione SET ROWCOUNT comporta l'interruzione della maggior parte delle istruzioni Transact-SQL quando queste raggiungono il numero di righe specificato. Lo stesso avviene con trigger e istruzioni di modifica dei dati quali INSERT, UPDATE e DELETE. L'opzione ROWCOUNT non ha effetto sui cursori dinamici, ma limita il set di righe dei cursori di tipo KEYSET e INSENSITIVE. Utilizzare questa opzione con cautela e principalmente con l'istruzione SELECT.
L'opzione SET ROWCOUNT è prioritaria rispetto alla parola chiave TOP dell'istruzione SELECT se il conteggio delle righe corrisponde a un valore inferiore.
L'opzione SET ROWCOUNT viene ignorata nelle istruzioni INSERT, UPDATE e DELETE quando viene utilizzata una espressione TOP esplicita nella stessa istruzione, comprese le istruzioni in cui una clausola SELECT segue INSERT.
L'opzione SET ROWCOUNT viene impostata in fase di esecuzione, non in fase di analisi.
Autorizzazioni
È richiesta l'appartenenza al ruolo public.
Esempi
L'opzione SET ROWCOUNT interrompe l'elaborazione dopo il numero di righe specificato. Nell'esempio seguente, 545 righe soddisfano il criterio Quantity è minore di 300. Dal numero di righe restituite dall'aggiornamento, si può tuttavia notare che non sono state elaborate tutte le righe. ROWCOUNT influisce su tutte le istruzioni Transact-SQL.
USE AdventureWorks;
GO
SELECT count(*) AS Count
FROM Production.ProductInventory
WHERE Quantity < 300;
GO
Set di risultati:
Count
-----------
537
(1 row(s) affected)
Impostare ora ROWCOUNT su 4 e aggiornare tutte le righe che soddisfano il criterio Quantity è minore di 300.
SET ROWCOUNT 4;
UPDATE Production.ProductInventory
SET Quantity = 400
WHERE Quantity < 300;
GO
(4 row(s) affected)