Partager via


@@ROWCOUNT (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure 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

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

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 1sur . Aucune ligne n'est envoyée au client. Voici quelques exemples de ces instructions : SET @local_variable, , READTEXTRETURNet 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 CURSORCLOSE CURSOR, RAISERRORPRINT, , , 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 @@ROWCOUNTpas . 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