Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
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 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.
Anweisungen wie z. B. USE, SET <Option>, DEALLOCATE CURSOR, CLOSE CURSOR, BEGIN TRANSACTION oder COMMIT TRANSACTION setzen den ROWCOUNT-Wert auf 0 zurück.
Beispiele
Das folgende Beispiel führt eine UPDATE-Anweisung aus und erkennt mithilfe von @@ROWCOUNT, ob Zeilen geändert wurden.
USE AdventureWorks;
GO
UPDATE HumanResources.Employee
SET Title = 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)