SET ROWCOUNT (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-Datenbank in Microsoft Fabric

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

Zahl | @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 SETSET ROWCOUNT von , INSERT, und UPDATE Anweisungen in einer zukünftigen Version von SQL Server wirkt sich nicht aus.DELETE Vermeiden Sie die Verwendung SETSET ROWCOUNT von , INSERTDELETE, und Anweisungen UPDATE in neuen Entwicklungsarbeiten und planen Sie, Anwendungen zu modifizieren, die sie bereits verwenden. Die Verwendung der TOP-Syntax ergibt ein ähnliches Verhalten. Weitere Informationen finden Sie unter TOP (Transact-SQL).

Um diese Option so zu aktivieren, dass alle Zeilen zurückgegeben werden, geben Sie 0 an SET ROWCOUNT .

Das Setzen der SET ROWCOUNT Option führt dazu, dass die meisten Transact-SQL-Anweisungen die Verarbeitung stoppen, wenn sie von der angegebenen Anzahl von Zeilen betroffen sind. Dies gilt auch für Trigger. Die ROWCOUNT Option beeinflusst keine dynamischen Cursor, schränkt aber die Reihenmenge der Tastensätze und unsensiblen Cursors ein. Diese Option sollte mit Vorsicht eingesetzt werden.

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

Die Einstellung wird SET ROWCOUNT zur Ausführung oder Laufzeit und nicht zur Analysezeit festgelegt.

Berechtigungen

Erfordert die Mitgliedschaft in der public-Rolle.

Beispiele

SET ROWCOUNT die Verarbeitung stoppt nach der angegebenen Anzahl von Zeilen. Beachten Sie im folgenden Beispiel, dass über 500 Zeilen mit dem Kriterium Quantity kleiner als 300 übereinstimmen. Nach der Bewerbung SET ROWCOUNTsieht man jedoch, dass nicht alle Reihen zurückgegeben wurden.

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 die Verarbeitung stoppt nach der angegebenen Anzahl von Zeilen. Beachten Sie im folgenden Beispiel, dass mehr als 20 Zeilen mit dem Kriterium AccountType = 'Assets' übereinstimmen. Nach der Bewerbung SET ROWCOUNTsieht man jedoch, dass nicht alle Reihen zurückgegeben wurden.

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

Um alle Zeilen zurückzugeben, setzen ROWCOUNT Sie auf 0.

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

Siehe auch

SET Anweisungen (Transact-SQL)