Delen via


STEL RIJENTELLING (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Database in Microsoft Fabric

Veroorzaakt dat SQL Server stopt met het verwerken van de query nadat het opgegeven aantal rijen is teruggegeven.

Transact-SQL syntaxis-conventies

Syntaxis

SET ROWCOUNT { number | @number_var }   

Arguments

aantal | @number_var
Is het aantal, een geheel getal, van rijen die verwerkt moeten worden voordat de specifieke query wordt gestopt.

Opmerkingen

Belangrijk

Het gebruik van SET ROWCOUNT heeft geen invloed op DELETE-, INSERT- en UPDATE-instructies in een toekomstige release van SQL Server. Vermijd het gebruik van SET ROWCOUNT met DELETE-, INSERT- en UPDATE-instructies in nieuw ontwikkelingswerk, en plan om applicaties aan te passen die het momenteel gebruiken. Voor een vergelijkbaar gedrag gebruik je de TOP-syntaxis. Zie TOP (Transact-SQL)voor meer informatie.

Om deze optie uit te schakelen zodat alle rijen worden teruggegeven, specificeer je SET ROWCOUNT 0.

Het instellen van de optie SET ROWCOUNT zorgt ervoor dat de meeste Transact-SQL statements stoppen met verwerken wanneer ze zijn beïnvloed door het opgegeven aantal rijen. Dit omvat ook triggers. De optie ROWCOUNT beïnvloedt dynamische cursors niet, maar beperkt wel de rijset van keyset en ongevoelige cursors. Deze optie moet met voorzichtigheid worden gebruikt.

SET ROWCOUNT overschrijft het SELECT-statement TOP-trefwoord als de rijtelling de kleinere waarde is.

De instelling van SET ROWCOUNT wordt ingesteld tijdens execute- of runtime en niet tijdens parsetijd.

Permissions

Vereist lidmaatschap van de openbare rol.

Voorbeelden

SET ROWCOUNT stopt de verwerking na het opgegeven aantal rijen. In het volgende voorbeeld merkt u op dat meer dan 500 rijen voldoen aan het criterium van Quantity minder dan 300. Na het toepassen van SET ROWCOUNT zie je echter dat niet alle rijen zijn teruggegeven.

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

Hier is het resultatenoverzicht.

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

(1 row(s) affected)

Stel ROWCOUNT nu alle rijen in en 4 returneer om aan te tonen dat slechts 4 rijen worden teruggegeven.

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

Voorbeelden: Azure Synapse Analytics and Analytics Platform System (PDW)

SET ROWCOUNT stopt de verwerking na het opgegeven aantal rijen. In het volgende voorbeeld merkt op dat meer dan 20 rijen voldoen aan de criteria van AccountType = 'Assets'. Na het toepassen van SET ROWCOUNT zie je echter dat niet alle rijen zijn teruggegeven.

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

Om alle rijen terug te geven, zet ROWCOUNT op 0.

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

Zie ook

SET-instructies (Transact-SQL)