@@ROWCOUNT (Transact-SQL)
Gilt für: SQL Server
Azure SQL-Datenbank
Azure SQL verwaltete Instanz
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
Hinweise
Transact-SQL-Anweisungen können den Wert auf @@ROWCOUNT
folgende Weise festlegen:
- Wird auf die Anzahl der betroffenen Zeilen oder lesevorgänge festgelegt
@@ROWCOUNT
. Zeilen können an den Client gesendet werden. - Beibehalten
@@ROWCOUNT
aus der vorherigen Anweisungsausführung. - Setzen Sie
@@ROWCOUNT
den Wert auf 0 zurück, geben Sie den Wert jedoch nicht an den Client zurück.
Anweisungen, die eine einfache Zuordnung machen, legen immer den @@ROWCOUNT
Wert auf 1
. Es werden keine Zeilen an den Client gesendet. Beispiele für diese Anweisungen sind: SET @local_variable
, RETURN
, READTEXT
, und wählen Sie ohne Abfrageanweisungen wie SELECT GETDATE()
oder SELECT '<Generic Text>'
.
Anweisungen, die eine Zuweisung in einer Abfrage vornehmen oder in einer Abfrage verwenden RETURN
, legen den @@ROWCOUNT
Wert auf die Anzahl der betroffenen Zeilen fest oder werden von der Abfrage gelesen, z. B.: SELECT @local_variable = c1 FROM t1
.
Dml-Anweisungen (Data Manipulation Language) legen den @@ROWCOUNT
Wert auf die Anzahl der zeilen fest, die von der Abfrage betroffen sind, 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 Sie den @@ROWCOUNT
Wert auf 1
.
EXECUTE
Anweisungen behalten die vorherige @@ROWCOUNT
.
Anweisungen wie USE
, , SET <option>
, DEALLOCATE CURSOR
, CLOSE CURSOR
, PRINT
, , RAISERROR
, , BEGIN TRANSACTION
oder COMMIT TRANSACTION
setzen den ROWCOUNT
Wert auf 0
.
Nativ kompilierte gespeicherte Prozeduren behalten die vorherige @@ROWCOUNT
. Transact-SQL-Anweisungen in nativ kompilierten gespeicherten Prozeduren werden nicht festgelegt @@ROWCOUNT
. 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