@@ROWCOUNT (Transact-SQL)

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.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

@@ROWCOUNT

Types de retour

int

Notes

Les instructions Transact-SQL peuvent définir la valeur de @@ROWCOUNT comme suit :

  • En attribuant à @@ROWCOUNT le nombre de lignes affectées ou lues. Les lignes peuvent être, ou ne pas être, envoyées au client.

  • En conservant la valeur de @@ROWCOUNT issue de l'exécution de l'instruction précédente.

  • En réinitialisant @@ROWCOUNT à 0 sans retourner la valeur au client.

Les instructions qui réalisent une affectation simple attribuent toujours à @@ROWCOUNT la valeur 1. Aucune ligne n'est envoyée au client. Parmi ces instructions figurent SET @local\_variable, RETURN, READTEXT, ainsi que les instructions de sélection sans requête telles que SELECT GETDATE() ou SELECT 'Generic Text'.

Les instructions qui réalisent une affectation dans une requête ou utilisent RETURN dans une requête attribuent à @@ROWCOUNT 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) attribuent à @@ROWCOUNT 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 attribuent à @@ROWCOUNT la valeur 1.

Les instructions EXECUTE conservent la valeur @@ROWCOUNT antérieure.

Les instructions telles que USE, SET <option>, DEALLOCATE CURSOR, CLOSE CURSOR, BEGIN TRANSACTION ou COMMIT TRANSACTION réinitialisent la valeur ROWCOUNT à 0.

Exemple

L'exemple suivant exécute une instruction UPDATE et utilise @@ROWCOUNT pour déterminer si des lignes ont été modifiées.

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