@@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, , , RETURNoch select utan frågesatser såsom READTEXT eller SELECT GETDATE()SELECT '<Generic Text>'.

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 , , , , , USE, SET <option>, DEALLOCATE CURSOR, eller CLOSE CURSOR återställer PRINT värdet till RAISERROR. BEGIN TRANSACTIONCOMMIT TRANSACTIONROWCOUNT0

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