Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-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
@@ROWCOUNTin på antalet rader som påverkas eller läses. Radrader kan skickas till klienten eller inte. - Bevara
@@ROWCOUNTfrån föregående satsexekvering. - Återställ
@@ROWCOUNTtill 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