SET ROWCOUNT (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 SETSET ROWCOUNT van , INSERT, en UPDATE statements in een toekomstige release van SQL Server heeft geen effectDELETE. Vermijd het gebruik SETSET ROWCOUNT van met DELETE, INSERT, en UPDATE statements 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 zetten zodat alle rijen worden teruggegeven, geef 0 op SET ROWCOUNT .

Het instellen van de SET ROWCOUNT optie 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 ROWCOUNT optie 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 het aantal rijen de kleinere waarde is.

De instelling van SET ROWCOUNT wordt ingesteld bij uitvoering of uitvoeringstijd en niet op parseringstijd.

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 aanvraag SET ROWCOUNTzie je echter dat niet alle rijen zijn teruggestuurd.

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 aanvraag SET ROWCOUNTzie je echter dat niet alle rijen zijn teruggestuurd.

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

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

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

Zie ook

SET Instructies (Transact-SQL)