@@ROWCOUNT (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Returnerar antalet rader som påverkats av det senaste påståendet. Om antalet rader är mer än 2 miljarder, använd ROWCOUNT_BIG.

Transact-SQL syntaxkonventioner

Syntax

@@ROWCOUNT

Returtyper

int

Anmärkningar

Transact-SQL satser kan sätta värdet i @@ROWCOUNT på följande sätt:

  • Ställ @@ROWCOUNT in på antalet rader som påverkas eller läses. Radrader kan skickas till klienten eller inte.
  • Bevara @@ROWCOUNT från föregående satsexekvering.
  • Återställ @@ROWCOUNT till 0 men returnera inte värdet till klienten.

Satser som gör en enkel tilldelning sätter @@ROWCOUNT alltid värdet till 1. Inga rader skickas till klienten. Exempel på dessa satser är: SET @local_variable, , , READTEXToch select utan frågesatser såsom SELECT GETDATE() eller SELECT '<Generic Text>'RETURN.

Satser som gör en tillordning i en fråga eller använder RETURN i en fråga sätter @@ROWCOUNT värdet till antalet rader som påverkas eller läses av frågan, till exempel: SELECT @local_variable = c1 FROM t1.

Data manipulation language (DML)-satser sätter @@ROWCOUNT värdet till antalet rader som påverkas av frågan och returnerar det värdet till klienten. DML-uttalandena kanske inte skickar några rader till klienten.

DECLARE CURSOR och FETCH sätt @@ROWCOUNT värdet till 1.

EXECUTE Satser bevarar det föregående @@ROWCOUNT.

Påståenden som , , , , , PRINT, RAISERROR, BEGIN TRANSACTION, eller COMMIT TRANSACTION återställer ROWCOUNT värdet till 0. CLOSE CURSORDEALLOCATE CURSORSET <option>USE

Nativt kompilerade lagrade procedurer bevarar föregående @@ROWCOUNT. Transact-SQL satser i nativt kompilerade lagrade procedurer sätter @@ROWCOUNTinte . Mer information finns i Internt kompilerade lagrade procedurer.

Examples

Följande exempel exekverar ett UPDATE uttalande och används @@ROWCOUNT för att upptäcka om några rader har ändrats.

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