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 :

Incrémentation Variable


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 7
    Par défaut Incrémentation Variable
    Je fais un trigger et dans ce trigger j'incrémente une variable.
    Le trigger n'est pas forcément juste mais je m'en fous a moins que ceci joue sur l'incrémentation de la variable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    CREATE Trigger  COMMERCIAL on ENTETE For update,insert
    as
    Declare @DEPT varchar(2),@com varchar(100),@COMPTEUR int
    SET @COMPTEUR=0
    IF(@compteur<=(Select count(LIVRAISON.LI_No) FROM LIVRAISON))
    BEGIN
    SELECT     @DEPT=SUBSTRING(LIVRAISON.LI_CodePostal, 1, 2), @Com=ENTETE.Commerc
    FROM         LIVRAISON INNER JOIN
                          ENTETE ON LIVRAISON.LI_No = ENTETE.LI_No
    Update ENTETE Set Commerc=@DEPT from inserted Where  ENTETE.LI_No =inserted.LI_No AND @DEPT<>  ENTETE.Commerc
    @COMPTEUR = @COMPTEUR + 1
    END

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Février 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 126
    Par défaut
    Tu fais un :
    @COMTPEUR est forcement = 0 à chaque appel de ton trigger

  3. #3
    Membre éclairé
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    423
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2004
    Messages : 423
    Par défaut
    non, sans SET @COMPTEUR=0, la variable est a null

    Au fait, c'est quoi la question ?
    ( je vois que dans ton trigger, tu as oublié à la fin le mot clé set devant @compteur=@compteur+1

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Février 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 126
    Par défaut
    Ce que je veux dire c'est qu'apparement il veut incrémenter @COMPTEUR à chaque fois qu'il va faire un insert ou update sur la table ENTETE, comme il fait un SET @COMPTEUR = 0 sans aller le chercher ailleurs, quand le trigger est lancé :

    DECLARE -> NULL
    SET -> 0
    SI CONDITION -> 1
    le trigger est quitté et à l'insert ou l'update suivant on recommence. non ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 7
    Par défaut
    C'est bon merci le pb est résolu c'est tout simplement que je n'avais pas mis de Set devant compteur.

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Février 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 126
    Par défaut
    Attends le truc m'interresse, n'utilisant jamais ce genre de truc, cela voudrait signifier un truc "bizarre" pour moi sur les triggers et la portée des variables.

  7. #7
    Membre éclairé
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    423
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2004
    Messages : 423
    Par défaut
    apparemment "il s'en fout" que le trigger ne soit pas juste. Ca tombe bien car c'est le cas

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Février 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 126
    Par défaut
    Mon raisonnement est bon où pas ?

    Citation Envoyé par |DUCATI| DesMo
    Ce que je veux dire c'est qu'apparement il veut incrémenter @COMPTEUR à chaque fois qu'il va faire un insert ou update sur la table ENTETE, comme il fait un SET @COMPTEUR = 0 sans aller le chercher ailleurs, quand le trigger est lancé :

    DECLARE -> NULL
    SET -> 0
    SI CONDITION -> 1
    le trigger est quitté et à l'insert ou l'update suivant on recommence. non ?

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 7
    Par défaut
    Oui c ça la variable compteur recommence à 0

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

Discussions similaires

  1. Incrémenter variables automatiquement
    Par Ankhsounamon31 dans le forum SAS Base
    Réponses: 5
    Dernier message: 13/04/2011, 12h34
  2. [WD12] Incrémentation variable dans WdEtat
    Par Yolak dans le forum WinDev
    Réponses: 3
    Dernier message: 05/06/2009, 09h36
  3. incrémentation variable sql
    Par zemblamoh dans le forum Langage SQL
    Réponses: 0
    Dernier message: 03/06/2009, 11h05
  4. incrémenter un variable
    Par penelope dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 21/07/2005, 17h49
  5. [débutant][xsl]incrémenter une variable
    Par guitalca dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 01/04/2003, 15h19

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