SET ROWCOUNT (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-databas i Microsoft Fabric

Gör att SQL Server slutar bearbeta frågan efter att det angivna antalet rader returnerats.

Transact-SQL syntaxkonventioner

Syntax

SET ROWCOUNT { number | @number_var }   

Arguments

Nummer | @number_var
Är antalet, ett heltal, av rader som ska behandlas innan den specifika frågan stoppas.

Anmärkningar

Viktigt!

Att använda SETSET ROWCOUNT kommer inte att påverka DELETE, INSERT, och UPDATE satser i en framtida version av SQL Server. Undvik att använda SETSET ROWCOUNT med DELETE, INSERT, och UPDATE satser i nytt utvecklingsarbete, och planera att modifiera applikationer som för närvarande använder det. För ett liknande beteende, använd TOP-syntaxen. Mer information finns i TOP (Transact-SQL).

För att aktivera detta alternativ så att alla rader returneras, ange SET ROWCOUNT 0.

Att sätta SET ROWCOUNT alternativet gör att de flesta Transact-SQL-satser slutar bearbetas när de har påverkats av det angivna antalet rader. Detta inkluderar triggers. Alternativet ROWCOUNT påverkar inte dynamiska markörer, men det begränsar raduppsättningen av tangent- och okänsliga markörer. Detta alternativ bör användas med försiktighet.

SET ROWCOUNT åsidosätter nyckelordet SELECT-satsen TOP om radantalet är det lägre värdet.

Inställningen av SET ROWCOUNT är satt vid exekverings- eller körtid och inte vid parsetid.

Permissions

Kräver medlemskap i den offentliga rollen.

Examples

SET ROWCOUNT slutar bearbetningen efter det angivna antalet rader. I följande exempel, notera att över 500 rader uppfyller kriterierna Quantity mindre än 300. Men efter att ha ansökt SET ROWCOUNTkan du se att inte alla rader returnerades.

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

Här är resultatet.

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

(1 row(s) affected)

Sätt ROWCOUNT nu in och 4 returnera alla rader för att visa att endast 4 rader returneras.

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

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

SET ROWCOUNT slutar bearbetningen efter det angivna antalet rader. I följande exempel, notera att mer än 20 rader uppfyller kriterierna för AccountType = 'Assets'. Men efter att ha ansökt SET ROWCOUNTkan du se att inte alla rader returnerades.

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

För att returnera alla rader, ställ ROWCOUNT in på 0.

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

Se även

SET Instruktioner (Transact-SQL)