Megosztás a következőn keresztül:


@@ROWCOUNT (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Visszaadja az utolsó mondathoz tartozó sorok számát. Ha a sorok száma több mint 2 milliárd, használd ROWCOUNT_BIG.

Transact-SQL szintaxis konvenciók

Szemantika

@@ROWCOUNT

Visszatérési típusok

int

Megjegyzések

Transact-SQL állítások az alábbi módokon állíthatják be az értéket:@@ROWCOUNT

  • Állítsd @@ROWCOUNT be az érintett vagy olvasott sorok számát. A sorokat lehet, hogy elküldik az ügyfélnek, vagy sem.
  • A korábbi kijelentés végrehajtása marad @@ROWCOUNT .
  • Nullára állítsd @@ROWCOUNT vissza, de ne add vissza az értéket a kliensnek.

Azok az állítások, amelyek egyszerű hozzárendelést tesznek, mindig az @@ROWCOUNT értéket .1 Nem küldenek sorokat az ügyfélnek. Ilyen állítások példái: SET @local_variable, RETURN, READTEXT, és select lekérdezési utasítások nélkül, mint SELECT GETDATE() például vagy SELECT '<Generic Text>'.

Azok az utasítások, amelyek lekérdezésben hozzárendelést tesznek vagy lekérdezésben használnak RETURN , az @@ROWCOUNT értéket a lekérdezés által érintett vagy olvasott sor számára állítják be, például: SELECT @local_variable = c1 FROM t1.

Az adatkezelő nyelv (DML) utasításai beállítják az @@ROWCOUNT értéket a lekérdezés által érintett sorok számára, és visszaadják az értéket a kliensnek. A DML kimutatások nem feltétlenül küldenek sorokat az ügyfélnek.

DECLARE CURSORés FETCH állítsuk be az @@ROWCOUNT értéket .1

EXECUTE Állítások megőrzik az előző @@ROWCOUNT.

Olyan állítások, mint USE, SET <option>, DEALLOCATE CURSOR, CLOSE CURSOR, PRINTRAISERRORBEGIN TRANSACTION, , vagy COMMIT TRANSACTION az ROWCOUNT értéket állítsák vissza .0

A natívan lefordított tárolt eljárások megőrzik az előző @@ROWCOUNT. Transact-SQL utasítások a natívan fordított tárolt eljárásokon belül nem állítanak @@ROWCOUNTbe . További információ: Natívan lefordított tárolt eljárások.

Példák

A következő példa egy UPDATE utasítást hajt végre, és azt használja @@ROWCOUNT annak felismerésére, hogy változott-e valamelyik sor.

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