SET ROWCOUNT (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW)
Provoca l'arresto dell'elaborazione della query in SQL Server dopo che è stato restituito il numero di righe specificato.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
SET ROWCOUNT { number | @number_var }
Argomenti
number | @number_var
Numero intero di righe da elaborare prima dell'arresto della query specifica.
Osservazioni:
Importante
L'utilizzo di SET ROWCOUNT non avrà effetto sulle istruzioni DELETE, INSERT e UPDATE in una versione futura di 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. Per un comportamento simile, utilizzare la sintassi TOP. Per altre informazioni, vedere TOP (Transact-SQL).
Per disattivare questa opzione in modo che vengano restituite tutte le righe, specificare SET ROWCOUNT 0.
L'impostazione dell'opzione SET ROWCOUNT comporta l'arresto della maggior parte delle istruzioni Transact-SQL quando queste raggiungono il numero di righe specificato. Sono inclusi i trigger. 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.
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 impostata in fase di esecuzione, non in fase di analisi.
Autorizzazioni
È richiesta l'appartenenza al ruolo public.
Esempi
L'opzione SET ROWCOUNT consente di arrestare l'elaborazione dopo il numero di righe specificato. Nell'esempio seguente si noti come oltre 500 righe soddisfino i criteri di Quantity
minore di 300
. Dopo avere applicato SET ROWCOUNT, tuttavia, si noterà come non siano state restituite tutte le righe.
USE AdventureWorks2022;
GO
SELECT count(*) AS Count
FROM Production.ProductInventory
WHERE Quantity < 300;
GO
Il set di risultati è il seguente.
Count
-----------
537
(1 row(s) affected)
Impostare quindi ROWCOUNT
su 4
e restituire tutte le righe per dimostrare come vengano restituite solo 4 righe.
SET ROWCOUNT 4;
SELECT *
FROM Production.ProductInventory
WHERE Quantity < 300;
GO
-- (4 row(s) affected)
Esempi: Azure Synapse Analytics e Piattaforma di strumenti analitici (PDW)
L'opzione SET ROWCOUNT consente di arrestare l'elaborazione dopo il numero di righe specificato. Nell'esempio seguente più di 20 righe soddisfano il criterio AccountType = 'Assets'
. Dopo avere applicato SET ROWCOUNT, tuttavia, si noterà come non siano state restituite tutte le righe.
-- Uses AdventureWorks
SET ROWCOUNT 5;
SELECT * FROM [dbo].[DimAccount]
WHERE AccountType = 'Assets';
Per restituire tutte le righe, impostare ROWCOUNT su 0.
-- Uses AdventureWorks
SET ROWCOUNT 0;
SELECT * FROM [dbo].[DimAccount]
WHERE AccountType = 'Assets';