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

Développement SQL Server Discussion :

Trigger after update sur une colonne avec condition


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Homme Profil pro
    test
    Inscrit en
    Mai 2016
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Algérie

    Informations professionnelles :
    Activité : test
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Mai 2016
    Messages : 343
    Points : 121
    Points
    121
    Par défaut Trigger after update sur une colonne avec condition
    bonjour a tous

    je voudrai mettre un trigger d'une application de workflou

    ce trigger doit mettre a jour une colonne a chaque update sur une autre colonne

    le colonne en question il s'appelle signature1

    ce dernier colonne signature1 peuvent avoir 3 valueurs "Accepté","En cours" ou "Refusé"

    je veux que mon trigger se lance que si et seulement si il prend la valeur " Accepté"

    ci joint le syntaxe de mon trigger

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    create trigger tr_signature
    on  signature_Rh
    after update 
    as
    if(update signature1)
    update signature_Rh
    set signature2='En cours';signature_rh='En cours'
    from signature_Rh rs inner join deleted d
    on rs.matricule=d.matricule
    where service='Informatique' and diplome='Ingenieur'
    merci pour vos aides

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour


    Il faut déjà remplacer le point-virgule par une simple virgule dans votre commande UPDATE.
    Ensuite, il faudrait je pense plutôt s’appuyer sur la pseudo table INSERTED au lieu de DELETED.

    Cela dit votre besoin n'est pas très clair.
    Avec la structure de la table et en détaillant un peu plus ce que vous voulez faire, ce serait sans doute plus pratique pour vous aider...

  3. #3
    Membre régulier
    Homme Profil pro
    test
    Inscrit en
    Mai 2016
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Algérie

    Informations professionnelles :
    Activité : test
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Mai 2016
    Messages : 343
    Points : 121
    Points
    121
    Par défaut
    bonjour

    Ci joint le syntaxe du table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    create table signature_rh
    (id_demande int identity(1,1) primary key CLUSTERED,
    matricule varchar(50),
    nom varchar(30),
    service varchar(50),
    diplome varchar(30),
    signature1 varchar(30),
    signature2 varchar(30),
    signature_rh varchar(50),
    dtsys datetime NULL,
    [PassPar] [varchar](50) NULL
    )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    create trigger tr_signature
    on  signature_Rh
    after update 
    as
    if update (signature1)
    update signature_Rh
    set signature2='En cours',signature_rh='En cours'
    from signature_Rh rs inner join inserted d
    on rs.matricule=d.matricule
    where rs.service='Informatique' and rs.diplome='Ingenieur'
    je veux que mon trigger se déclencher que après le colonne signature1 prend la valeur "Accepté"

    ce trigger ne doit pas se déclencher si signature1 prend la valeur "En cours" ou "Refusé"

    merci
    Images attachées Images attachées  

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par NULL008 Voir le message
    je veux que mon trigger se déclencher que après le colonne signature1 prend la valeur "Accepté"
    ce trigger ne doit pas se déclencher si signature1 prend la valeur "En cours" ou "Refusé"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    where rs.service='Informatique' 
    	and rs.diplome='Ingenieur'
    	and rs.signature1 = 'Accepté'

Discussions similaires

  1. Update sur une table avec conditions
    Par tibss dans le forum Langage SQL
    Réponses: 8
    Dernier message: 08/07/2011, 17h13
  2. [XL-2003] Macro avec boucle sur une colonne et condition sur une autre
    Par Isabelle86 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/10/2010, 10h31
  3. Réponses: 5
    Dernier message: 15/06/2007, 16h05
  4. [VBA-E] Minimum d'une colonne avec condition sur autre colonne
    Par Currahee dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/05/2007, 17h01
  5. [Oracle] Update sur 1 colonne avec condition existence (SUBSTR)
    Par magic charly dans le forum Langage SQL
    Réponses: 6
    Dernier message: 20/04/2006, 13h57

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