Freigeben über


@@ROWCOUNT (Transact-SQL)

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.

Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version), Windows Azure SQL-Datenbank (Ursprüngliche Version bis aktuelle Version).

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

Syntax

@@ROWCOUNT

Rückgabetypen

int

Hinweise

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 diese Anweisungen: SET @local\_variable, RETURN, READTEXT und SELECT ohne Abfrageanweisungen wie 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, BEGIN TRANSACTION oder COMMIT TRANSACTION wird der ROWCOUNT-Wert auf 0 zurückgesetzt.

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

Beispiele

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

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

Siehe auch

Verweis

Systemfunktionen (Transact-SQL)

SET ROWCOUNT (Transact-SQL)