STÄLLD RADRÄKNING (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 SET ROWCOUNT påverkar inte DELETE-, INSERT- och UPDATE-satserna i en framtida version av SQL Server. Undvik att använda SET 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 alternativet SET ROWCOUNT gör att de flesta Transact-SQL-satser slutar bearbetas när de har påverkats av det angivna antalet rader. Detta inkluderar triggers. ROWCOUNT-alternativet påverkar inte dynamiska markörer, men det begränsar raduppsättningen av tangentuppsättningar och okänsliga markörer. Detta alternativ bör användas med försiktighet.

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

Inställningen för SET ROWCOUNT är inställd vid exekverings- eller körtid och inte vid parsetid.

Permissions

Kräver medlemskap i den offentliga rollen.

Examples

SET ROWCOUNT slutar bearbeta efter det angivna antalet rader. I följande exempel, notera att över 500 rader uppfyller kriterierna Quantity mindre än 300. Men efter att ha applicerat SET ROWCOUNT kan 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 bearbeta 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 applicerat SET ROWCOUNT kan 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, sätt RADRÄKNING till 0.

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

Se även

SET-instruktioner (Transact-SQL)