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 :

[SQL2000]Création d'un trigger update


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut [SQL2000]Création d'un trigger update
    Salut

    Je n'ai aps l'habitude de créer ce genre de chose et en parcourant la doc SQL 2000, la FAQ et les cours je 'nai aps trouvé de réponse.

    Je voudrais créer un trigger sur une colonne. J'ai mis le code qui se toruve un peu plus bas, mais son action est globale. Je n'ai pas trouvé le moyen de le faire juste pour l'enregistrement concerné ou je n'ai pas compris ce que j'ai lu.

    En gros, mon trigger dois mettre à jour un champ en lui donnant la date du jour à chaque fois que la ligne est modifiée.
    Je pense qu'il faut mettre une clause where, mais je ne sais pas comment l'exprimer.

    Pouvez vous m'aider ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CREATE TRIGGER [UPD_Date_Modif] ON [dbo].[MEMBRES] 
    FOR UPDATE
    AS
    UPDATE MEMBRES SET Date_Last_Modif = GetDate()

  2. #2
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Par défaut syntaxe


    IF UPDATE(nom-colonne)
    BEGIN
    .....
    END

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci pour ton aide, mais pourrais tu être un peu plus précis.

    Je ne comprend pas ce que je mets à la place de (nom_colonne) et surtout, je ne vois pas ce que je mets à la palce des points

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2003
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 207
    Par défaut
    Je recherche la même chose que toi Zooffy

    As-tu trouvé une réponse à ton problème ?

    Je ne sais pas quoi mettre dans la clause "Where"....

    Merci d'avance pour les réponses

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    le if update(nom_colonne) sert à savoir si la requete qui a déclenché le trigger était censé mettre à jour la colonne spécifié par le update()

    enfin dans ton cas ca ne servira pas, il a du mal lire ta question



    sinon dans un trigger, 2 pseudos tables sont remplies
    dans le cas d'un trigger d'insert, la table INSERTED contient les lignes qui ont ou seront ajoutées
    dans le cas d'un trigger de delete, la table DELETED contient ....
    et dans le cas d'un trigger d'update, la table DELETED contient les lignes avant modification et la table INSERTED les lignes après modification


    donc ca te donnerait un truc du genre
    update table set date=getdate() where macleprimaire IN (SELECT macleprimaire FROM INSERTED)

    NB :
    une jointure irait aussi
    si plusieurs clés dans ta tables, faire la jointure sur toutes les clés
    ca marche aussi sur deleted vu que les 2 tables contiennent autant de lignes et les meme clés
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2003
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 207
    Par défaut
    merci super !

    Exactement ce que je voulais et ça répond à la question zoofy également.

    Cool !

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

Discussions similaires

  1. Problème à la création d'un trigger
    Par Vincent Stryckmans dans le forum SQL
    Réponses: 3
    Dernier message: 20/10/2005, 11h27
  2. [trigger] update inserted?
    Par cosminutza dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 01/06/2005, 09h37
  3. Réponses: 2
    Dernier message: 10/05/2005, 18h15
  4. [Oracle] Aide pour la création d'un trigger
    Par Sonic dans le forum Administration
    Réponses: 14
    Dernier message: 04/11/2004, 19h54
  5. Trigger Update et Column_Updated
    Par Pm dans le forum Développement
    Réponses: 2
    Dernier message: 16/06/2004, 09h07

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