Udostępnij za pomocą


@@ROWCOUNT (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Zwraca liczbę wierszy dotkniętych ostatnim zapytaniem. Jeśli liczba wierszy przekracza 2 miliardy, użyj ROWCOUNT_BIG.

Transact-SQL konwencje składni

Składnia

@@ROWCOUNT

Typy zwracane

int

Uwagi

Transact-SQL stwierdzenia mogą ustawiać wartość w @@ROWCOUNT w następujący sposób:

  • Ustaw @@ROWCOUNT liczbę wierszy objętych lub odczytanych. Wiersze mogą być wysyłane do klienta lub nie.
  • Zachowaj fragment @@ROWCOUNT poprzedniego oświadczenia.
  • Zresetuj @@ROWCOUNT do 0, ale nie zwracaj wartości do klienta.

Zdania tworzące proste przypisanie zawsze ustawiają @@ROWCOUNT wartość na .1 Do klienta nie są wysyłane żadne wiersze. Przykładami tych zdań są: SET @local_variable, RETURN, READTEXT, oraz select without query stacjonation, takimi jak SELECT GETDATE() lub SELECT '<Generic Text>'.

Instrukcje, które dokonują przypisania w zapytaniu lub używają RETURN w zapytaniu, ustawiają @@ROWCOUNT wartość na liczbę wierszy dotkniętych lub odczytanych przez zapytanie, na przykład: SELECT @local_variable = c1 FROM t1.

Instrukcje języka manipulacji danymi (DML) określają @@ROWCOUNT wartość do liczby wierszy dotkniętych zapytaniem i zwracają tę wartość klientowi. Oświadczenia DML mogą nie wysyłać żadnych wierszy do klienta.

DECLARE CURSORi FETCH ustaw @@ROWCOUNT wartość na .1

EXECUTE Zdania zachowują poprzednie @@ROWCOUNT.

Instrukcje takie jak USE, SET <option>, DEALLOCATE CURSOR, CLOSE CURSOR, PRINT, RAISERROR, BEGIN TRANSACTION, lub zresetowanie COMMIT TRANSACTIONROWCOUNT wartości do .0

Natywnie skompilowane procedury przechowywane zachowują poprzednie @@ROWCOUNT. Transact-SQL instrukcje wewnątrz natywnie skompilowanych procedur przechowywanych nie ustawiają @@ROWCOUNT. Aby uzyskać więcej informacji, zobacz Natywnie skompilowane procedury składowane.

Przykłady

Poniższy przykład wykonuje UPDATE polecenie i służy @@ROWCOUNT do wykrywania, czy zmieniono jakieś wiersze.

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