SET ROWCOUNT (Transact-SQL)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Bewirkt, dass die Verarbeitung der Abfrage durch SQL Server beendet wird, sobald die angegebene Anzahl von Zeilen zurückgegeben wurde.

Transact-SQL-Syntaxkonventionen

Syntax

SET ROWCOUNT { number | @number_var }   

Argumente

number | @number_var
Die Zahl (eine ganze Zahl), die festlegt, wie viele Zeilen verarbeitet werden sollen, bevor die angegebene Abfrage beendet wird.

Bemerkungen

Wichtig

Die Verwendung von SET ROWCOUNT wird in einer zukünftigen Version von SQL Server keine Auswirkungen auf die Anweisungen DELETE, INSERT und UPDATE haben. Vermeiden Sie beim Entwickeln neuer Anwendungen das Verwenden von SET ROWCOUNT zusammen mit DELETE-, INSERT- und UPDATE-Anweisungen, und planen Sie die Änderung von Anwendungen, in denen dies zurzeit verwendet wird. Die Verwendung der TOP-Syntax ergibt ein ähnliches Verhalten. Weitere Informationen finden Sie unter TOP (Transact-SQL).

Um diese Option zu deaktivieren (sodass alle Zeilen zurückgegeben werden), geben Sie SET ROWCOUNT 0 an.

Das Festlegen der Option ROWCOUNT führt dazu, dass die Verarbeitung der meisten Transact-SQL-Anweisungen beendet wird, wenn die angegebene Anzahl von Zeilen bearbeitet wurde. Dies gilt auch für Trigger. Die Option ROWCOUNT wirkt sich nicht auf dynamische Cursor aus, begrenzt jedoch das Rowset von Keyset- und INSENSITIVE-Cursorn. Diese Option sollte mit Vorsicht eingesetzt werden.

SET ROWCOUNT überschreibt das TOP-Schlüsselwort der SELECT-Anweisung, wenn die Zeilenanzahl der kleinere Wert ist.

Die Einstellung von SET ROWCOUNT wird zur Laufzeit und nicht zur Analysezeit festgelegt.

Berechtigungen

Erfordert die Mitgliedschaft in der public-Rolle.

Beispiele

SET ROWCOUNT beendet die Verarbeitung nach der angegebenen Anzahl von Zeilen. Beachten Sie im folgenden Beispiel, dass über 500 Zeilen mit dem Kriterium Quantity kleiner als 300 übereinstimmen. Wenn SET ROWCOUNT angewendet wurde, werden jedoch nicht alle Zeilen zurückgegeben.

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

Hier sehen Sie das Ergebnis.

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

(1 row(s) affected)

Legen Sie jetzt ROWCOUNT auf 4 fest, und geben Sie alle Zeilen zurück, um zu zeigen, dass nur 4 Zeilen zurückgegeben werden.

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

Beispiele: Azure Synapse Analytics und Analytics-Plattformsystem (PDW)

SET ROWCOUNT beendet die Verarbeitung nach der angegebenen Anzahl von Zeilen. Beachten Sie im folgenden Beispiel, dass mehr als 20 Zeilen mit dem Kriterium AccountType = 'Assets' übereinstimmen. Wenn SET ROWCOUNT angewendet wurde, werden jedoch nicht alle Zeilen zurückgegeben.

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

Legen Sie ROWCOUNT auf 0 fest, um alle Zeilen zurückzugeben.

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

Siehe auch

SET-Anweisungen (Transact-SQL)