IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Comment compter les lignes insérées ?


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 87
    Points : 47
    Points
    47
    Par défaut Comment compter les lignes insérées ?
    Bonjour,

    J'ai un gros script d'insertion de données dans ma base et j'aimerais connaitre le nombre total d'insertion effectué à la fin de ce script ...

    En gros j'ai plusieurs INSERT ...
    Donc dans mes messages j'ai autant de fois de messages du genre xx lignes affectées
    Et ce que j'aimerais c'est connaitre la totalité de ces insertions !
    Y a t il une variable system me permettant de faire ça ?

  2. #2
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Créez une variable integer,après chaque insert faites:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET @VARIABLE=@VARIABLE+@@ROWCOUNT
    a la fin:
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  3. #3
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 87
    Points : 47
    Points
    47
    Par défaut
    Bonjour,

    Oui c'est exactement ce que j'ai fait !
    Mais le soucis c'est que je fais un test après chaque insertion

    Par exemple, après l'insertion des fiches :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    IF @@ERROR <> 0
        PRINT N'ERREUR : Fiche'
    ELSE
    	PRINT N'TABLE : Fiche-> OK'
    Pour tester si mon insertion c'est bien passée !

    Le problème est que si je SET ma variable pour incrémenter le nombre de lignes insérées dans la table entre le script d'insertion et ce code, le code de vérification ci-dessus ne va plus vérifier l'insertion mais va vérifier si le SET s'est bien passé ! Et ce n'est pas ce que je veux ...
    Car au final, une insertion de données (ici les fiches) peut ne pas fonctionner, et vu que le SET se passe bien, il va m'afficher 'Fiche -> OK'

  4. #4
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 87
    Points : 47
    Points
    47
    Par défaut
    En grattant un peu j'ai trouvé la réponse, pour ceux que ça intéresse :

    Il faut déclarer 2 variables avant le script du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    DECLARE @ErrorVar INT;
    DECLARE @RowCountVar int
    SET @RowCountVar = 0;
    Après chaque script d'insertion il suffit d'ajouter la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT @ErrorVar = @@ERROR
    ,@RowCountVar = @RowCountVar + @@ROWCOUNT;
    Pour tester si l'insertion s'est bien passé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    IF @ErrorVar <> 0
        PRINT N'ERREUR : Fiche'
    ELSE
        PRINT N'TABLE : Fiche-> OK'
    Et à la fin du script, pour avoir le nombre total de lignes insérées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PRINT @RowCountVar ;
    Cette méthode fonctionne parfaitement !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment compter les lignes regroupées ?
    Par giguoin dans le forum Requêtes
    Réponses: 14
    Dernier message: 27/05/2011, 10h13
  2. [XL-2007] Comment compter les lignes non vides
    Par Emily2711 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/10/2009, 19h47
  3. Réponses: 4
    Dernier message: 05/09/2008, 11h03
  4. Comment compter les lignes d'une relation d'un DataSet
    Par Poussy-Puce dans le forum ASP.NET
    Réponses: 1
    Dernier message: 01/10/2007, 14h08
  5. [C#] Compter les lignes d'un DataSet
    Par alexischmit dans le forum ASP.NET
    Réponses: 13
    Dernier message: 26/04/2004, 15h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo