@@ROWCOUNT (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

Gibt die Anzahl der Zeilen zurück, auf die sich die letzte Anweisung ausgewirkt hat. Beträgt die Anzahl der Zeilen mehr als 2 Milliarden, verwenden Sie ROWCOUNT_BIG.

Transact-SQL-Syntaxkonventionen

Syntax

@@ROWCOUNT  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

Rückgabetypen

int

Bemerkungen

Transact-SQL-Anweisungen können den Wert in @@ROWCOUNT auf folgende Weise festlegen:

  • Festlegen von @@ROWCOUNT auf die Anzahl der betroffenen oder gelesenen Zeilen. Zeilen werden möglicherweise an den Client gesendet.

  • Beibehalten von @@ROWCOUNT aus der vorherigen Anweisungsausführung.

  • Zurücksetzen von @@ROWCOUNT auf 0, doch ohne den Wert an den Client zurückzugeben.

Anweisungen, die eine einfache Zuweisung vornehmen, legen den Wert für @@ROWCOUNT stets auf 1 fest. Es werden keine Zeilen an den Client gesendet. Beispiele für derartige Anweisungen sind: SET @local_variable, RETURN, READTEXT sowie SELECT-Anweisungen ohne Abfrage, wie beispielsweise SELECT GETDATE() oder SELECT 'Generic Text'.

Anweisungen, die eine Zuweisung in einer Abfrage vornehmen oder RETURN in einer Abfrage verwenden, legen den Wert für @@ROWCOUNT auf die Anzahl der von der Abfrage betroffenen oder gelesenen Zeilen fest, z.B.: SELECT @local_variable = c1 FROM t1.

DML-Anweisungen (Data Manipulation Language) legen den Wert für @@ROWCOUNT auf die Anzahl der von der Abfrage betroffenen Zeilen fest und geben diesen Wert an den Client zurück. Die DML-Anweisungen senden möglicherweise keine Zeilen an den Client.

DECLARE CURSOR und FETCH legen den Wert für @@ROWCOUNT auf 1 fest.

EXECUTE-Anweisungen behalten die vorherige @@ROWCOUNT-Einstellung bei.

Mit Anweisungen wie USE, SET <Option>, DEALLOCATE CURSOR, CLOSE CURSOR, PRINT, RAISERROR, BEGIN TRANSACTION oder COMMIT TRANSACTION wird der ROWCOUNT-Wert auf 0 (null) zurückgesetzt.

Systemintern kompilierte gespeicherte Prozeduren behalten die vorherige @@ROWCOUNT-Einstellung bei. Transact-SQL-Anweisungen in nativ kompilierten gespeicherten Prozeduren legen die @@ROWCOUNT-Einstellung nicht fest. Weitere Informationen finden Sie unter Nativ kompilierte gespeicherte Prozeduren.

Beispiele

Das folgende Beispiel führt eine UPDATE-Anweisung aus und erkennt mithilfe von @@ROWCOUNT, ob Zeilen geändert wurden.

USE AdventureWorks2022;  
GO  
UPDATE HumanResources.Employee   
SET JobTitle = N'Executive'  
WHERE NationalIDNumber = 123456789  
IF @@ROWCOUNT = 0  
PRINT 'Warning: No rows were updated';  
GO  

Weitere Informationen

Systemfunktionen (Transact-SQL)
SET ROWCOUNT (Transact-SQL)