@@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.
S'applique à : SQL Server (SQL Server 2008 via la version actuelle, Base de données SQL Windows Azure (version initiale via la version actuelle. |
Conventions de la syntaxe Transact-SQL
Syntaxe
@@ROWCOUNT
Types des valeurs retournés
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.
Les procédures stockées compilées en mode natif conservent le @@ROWCOUNT précédent. Les instructions Transact-SQL à l'intérieur des procédures stockées compilées en mode natif ne définissent pas @@ROWCOUNT. Pour plus d'informations, consultez Introduction aux 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 AdventureWorks2012;
GO
UPDATE HumanResources.Employee
SET JobTitle = N'Executive'
WHERE NationalIDNumber = 123456789
IF @@ROWCOUNT = 0
PRINT 'Warning: No rows were updated';
GO