Freigeben über


SET ROWCOUNT (Transact-SQL)

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

Themenlink (Symbol)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.

Hinweise

Wichtiger HinweisWichtig

Das Verwenden von SET ROWCOUNT wird in der nächsten Version von SQL Server keine Auswirkungen auf die DELETE-, INSERT- und UPDATE-Anweisungen haben. Verwenden Sie SET ROWCOUNT bei neuen Entwicklungsarbeiten nicht zusammen mit den Anweisungen DELETE, INSERT und UPDATE, und planen Sie die Änderung von Anwendungen, die SET ROWCOUNT derzeit verwenden. Darüber hinaus sollten Sie DELETE-, INSERT- und UPDATE-Anweisungen, die zurzeit SET ROWCOUNT verwenden, neu schreiben, sodass sie die TOP-Syntax verwenden. Weitere Informationen finden Sie unter DELETE (Transact-SQL), INSERT (Transact-SQL) oder UPDATE (Transact-SQL).

Die Einstellung der Option SET ROWCOUNT wird für INSERT-, UPDATE- und DELETE-Anweisungen mit Remotetabellen sowie mit lokal als auch remote partitionierten Sichten ignoriert.

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

HinweisHinweis

Das Festlegen der Option ROWCOUNT veranlasst die meisten Transact-SQL-Anweisungen, die Verarbeitung zu beenden, wenn die angegebene Anzahl von Zeilen bearbeitet wurde. Dies gilt auch für Trigger und Datenänderungsanweisungen, wie z. B. INSERT, UPDATE und DELETE. Die Option ROWCOUNT wirkt sich nicht auf dynamische Cursor aus, begrenzt jedoch das Rowset von Keyset- und INSENSITIVE-Cursorn. Diese Option sollte mit Sorgfalt und in erster Linie mit der SELECT-Anweisung verwendet werden.

SET ROWCOUNT setzt das TOP-Schlüsselwort der SELECT-Anweisung außer Kraft, wenn die Zeilenanzahl der kleinere Wert ist.

SET ROWCOUNT wird in INSERT-, UPDATE- und DELETE-Anweisungen ignoriert, wenn ein expliziter TOP-Ausdruck in derselben Anweisung verwendet wird. Dies gilt auch für Anweisungen, in denen INSERT gefolgt von einer SELECT-Klausel verwendet wird.

Die Einstellung von SET ROWCOUNT wird zur Ausführungszeit 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 545 Zeilen mit dem Kriterium Quantity kleiner als 300 übereinstimmen. Die Anzahl von Zeilen, die von dem Update zurückgegeben wurden, zeigt jedoch, dass nicht alle Zeilen verarbeitet wurden. ROWCOUNT wirkt sich auf alle Transact-SQL-Anweisungen aus.

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

Dies ist das Resultset.

Count

-----------

537

(1 row(s) affected)

Legen Sie nun ROWCOUNT auf 4 fest, und aktualisieren Sie alle Zeilen mit einem Wert für Quantity, der kleiner als 300 ist.

SET ROWCOUNT 4;
UPDATE Production.ProductInventory
SET Quantity = 400
WHERE Quantity < 300;
GO

(4 row(s) affected)

Siehe auch

Verweis