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 :

[SQL2K] Trigger "INSTEAD OF" et vue


Sujet :

Développement SQL Server

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 58
    Par défaut [SQL2K] Trigger "INSTEAD OF" et vue
    Bonjour,

    J'ai un trigger qui me permet de mettre à jour un champ contenant la date de modification d'un enregistrement que voici:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CREATE TRIGGER DateModif 
    ON Article 
    FOR UPDATE
    AS
        UPDATE Article
        SET art_datemod = CURRENT_TIMESTAMP
        FROM Article as art
               INNER JOIN INSERTED as ins
                ON art.art_num = ins.art_num

    J'aimerais faire la même chose mais sur une vue, or avec SQL Server 2000, on ne peut faire que des triggers "instead of" sur une vue. Est-il possible d'écrire quelquechose ayant le même résultat avec des "instead of" du genre

    au lieu de mettre à jour
    met à jour
    puis, met à jour la date de modification

    Merci d'avance pour vos réponses

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 356
    Par défaut
    Tu utilises une vue donc il te suffit de la recharger pour visualiser la modification effectuée par ton trigger. N'oublies pas qu'une vue n'est que le résultat d'une requête SQL.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 58
    Par défaut
    Merci pour ta réponse

    Je ne crois pas être clair.

    En fait, ce que je veux c'est que mon trigger déclenche sur l' UPDATE de certains champs de ma table Article mais pas d'autres. Donc j'ai pensé faire une vue qui sélectionne les champs sur lesquels mon trigger doit déclencher puis créer un trigger sur cette vue Mais c'est peut être pas comme ça que ça marche... (excusez moi je débute )

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 46
    Par défaut Re
    Bonjour,
    Si j'ai bien compris ton pb, voilà l'exemple donné par m$ pour tester si un champ a été modifié

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TRIGGER reminder
    ON Person.Address
    AFTER UPDATE 
    AS 
    IF ( UPDATE (StateProvinceID) OR UPDATE (PostalCode) )
    BEGIN
    RAISERROR (50009, 16, 10)
    END;
    GO
    Le "update (..)" renvoie true si la colonne est modifiée

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 58
    Par défaut
    Merci pour ta réponse

    Effectivement je viens de tester le code ça marche parfaitement Merci beaucoup

  6. #6
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 29
    Par défaut
    Bonjour!
    J'arrive un peu après la guerre mais j'ai une question qui concerne ton pb..
    Dans la mesure où tout ton champ est réévalué chaque fois, sur de grosse grosse table, ya pas quelques soucis de perfs?
    C'est peut etre idiot comme question mais je débute aussi...
    Merci!

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

Discussions similaires

  1. [SQL SERVER 2k5]Trigger update instead of sur vue
    Par qlaimand dans le forum Développement
    Réponses: 0
    Dernier message: 18/06/2008, 17h06
  2. [SQL2K] TRIGGER - Instead of Insert
    Par buchette dans le forum Développement
    Réponses: 3
    Dernier message: 04/06/2008, 17h33
  3. [TADOTable] reconnaitre le trigger INSTEAD OF d'une vue...
    Par littledoudou dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/12/2003, 12h39

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