@@ROWCOUNT (Transact-SQL)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance
Retourne le nombre de lignes affectées par la dernière instruction. Si le nombre de lignes est supérieur à 2 milliards, utilisez ROWCOUNT_BIG.
Conventions de la syntaxe Transact-SQL
Syntaxe
@@ROWCOUNT
Types de retour
int
Notes
Les instructions Transact-SQL peuvent définir la valeur de @@ROWCOUNT
la manière suivante :
- Définissez
@@ROWCOUNT
le nombre de lignes affectées ou lues. Les lignes peuvent ou ne pas être envoyées au client. - Conservez
@@ROWCOUNT
l’exécution de l’instruction précédente. - Réinitialisé
@@ROWCOUNT
à 0, mais ne retournez pas la valeur au client.
Les instructions qui effectuent une affectation simple définissent toujours la @@ROWCOUNT
valeur 1
sur . Aucune ligne n'est envoyée au client. Voici quelques exemples de ces instructions : SET @local_variable
, , READTEXT
RETURN
et select sans instructions de requête telles que SELECT GETDATE()
ou SELECT '<Generic Text>'
.
Les instructions qui effectuent une affectation dans une requête ou qui l’utilisent RETURN
dans une requête définissent la @@ROWCOUNT
valeur sur le nombre de lignes affectées ou lues par la requête, par exemple : SELECT @local_variable = c1 FROM t1
.
Les instructions DML (Data Manipulation Language) définissent la @@ROWCOUNT
valeur sur le nombre de lignes affectées par la requête et retournent cette valeur au client. Les instructions DML peuvent ne pas envoyer de lignes au client.
DECLARE CURSOR
et FETCH
définissez la @@ROWCOUNT
valeur sur 1
.
EXECUTE
les instructions conservent les instructions précédentes @@ROWCOUNT
.
Instructions telles que USE
, SET <option>
DEALLOCATE CURSOR
CLOSE CURSOR
, RAISERROR
PRINT
, , , BEGIN TRANSACTION
, ou COMMIT TRANSACTION
réinitialiser la ROWCOUNT
valeur sur .0
Les procédures stockées compilées en mode natif conservent la précédente @@ROWCOUNT
. Les instructions Transact-SQL dans les procédures stockées compilées en mode natif ne définissent @@ROWCOUNT
pas . Pour plus d’informations, consultez Procédures stockées compilées en mode natif.
Exemples
L'exemple suivant exécute une instruction UPDATE
et utilise @@ROWCOUNT
pour déterminer si des lignes ont été modifiées.
USE AdventureWorks2022;
GO
UPDATE HumanResources.Employee
SET JobTitle = N'Executive'
WHERE NationalIDNumber = 123456789
IF @@ROWCOUNT = 0
PRINT 'Warning: No rows were updated';
GO