IF et @@ROWCOUNT

Suite à des petits soucis que j'ai eu lors de l'exécution d'une procédure stockées (mauvaise valeur du nombre de lignes affectées),
arrêtons-nous quelques instants sur cette variable SQL Server qu'est le @@ROWCOUNT.
Nous savons qu'elle renvoie le nombre de lignes affectées dans une session donnée.
exemple :

UPDATE T_Personne
SET PersonneName = 'coach'
WHERE PersonneId = 1
SELECT @@ROWCOUNT

Nous renverra 1 (si PersonneId est la PK de la table T_Personne).
Maintenant retenons que la condition SQL IF que l'on peut trouver sous diverses formes telles que :

IF EXISTS(...)
IF(@var = 1)

est une instruction SQL (en tout cas vu comme tel par le moteur..)

et vous obtenez la mise à jour de votre variable @@ROWCOUNT (en général elle renvoie la valeur 1) lors d'un IF...

Il fallait le savoir....

Publié jeudi 3 avril 2008 14:02 par guldan
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

# re: IF et @@ROWCOUNT @ jeudi 3 avril 2008 14:50

et si mon update lance un trigger qui fait un insert, @@rowcount me donne 2?

Miiitch

# re: IF et @@ROWCOUNT @ jeudi 3 avril 2008 16:50

Hello Mitch,

le scope de cette variable est le niveau courant, donc un trigger ne va pas influer sur sa valeur.

Je fais un post prochainement sur le scope pour les identity

guldan

# re: IF et @@ROWCOUNT @ vendredi 4 avril 2008 09:57

D'où la nécessité de copier tout de suite la valeur de @@rowcount dans une variable si on a l'intention de s'en servir. De même pour @@error, pour des raisons plus évidentes :)

KooKiz


Les 10 derniers blogs postés

- [WPF] Webcast pour garantir une interface réactive par Elise's blog le il y a 56 minutes

- Dell Inspiron Mini 9 - Enfin en vente !!! par The diary of EBArtSoft le il y a 15 heures et 18 minutes

- Solution Template et Project Template dans Visual Studio par Atteint de JavaScriptite Aiguë [Cyril Durand] le il y a 18 heures et 0 minutes

- PocketIE et Assignation du SRC d'un Element IMG par Jerome Laban le il y a 18 heures et 52 minutes

- Conversion de fichiers RAW en fichier JPEG avec WPF par Perspective le il y a 19 heures et 28 minutes

- Mise à Jour du Moteur de Recherche des Arrêts de Bus de Montréal par Jerome Laban le il y a 20 heures et 12 minutes

- [WPF] XPSReader v0.2 par Blog Technique d'Audrey PETIT le il y a 21 heures et 13 minutes

- Entity Framework : providers Oracle, MySQL et PostgreSQL par Matthieu MEZIL le 09-07-2008, 10:10

- [WPF] Nouvel article sur c2i.fr par Richard Clark le 09-06-2008, 17:33

- F# nouvelle CTP 1.9.6.2 (update) par Pierrick's Blog le 09-06-2008, 13:27