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 et fonction Columns_updated()


Sujet :

Développement SQL Server

  1. #1
    Membre éclairé
    Profil pro
    Développeur .Net, Administrateur système
    Inscrit en
    Octobre 2003
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .Net, Administrateur système
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 219
    Par défaut Trigger et fonction Columns_updated()
    [SQL SRV 2000]

    Bonjour,


    j'essai d'utiliser cette fonction pour que mon trigger (instead of insert) se déclenche si mise a jour de 4 colonnes particulières en meme temp. Ceci dit je coince.

    les positions ordinales de ces colonnes sont
    1 2 3 6

    et je teste
    if (columns_updated() & 71) = 71 et mon trigger se déclenche pour toutes les inserts

    pour obtenir 71 je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    select 
    power(2,(1-1)) +
    power(2,(2-1)) +
    power(2,(3-1)) +
    power(2,(6-1)) 
     
    1+2+4+64=71
    merci pour votre aide !!!

  2. #2
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Bonjour,

    pour citer l'aide en ligne (désolé pour l'anglais) :
    COLUMNS_UPDATED returns TRUE for all columns in INSERT actions because the columns have either explicit values or implicit (NULL) values inserted.
    Je sais, je sais... moi non plus je ne comprends pas vraiment à quoi sert cette fonction dans le contexte d'un trigger d'insert.

  3. #3
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Mon ami, une érreur de calcul s'est glissé dans votre code :
    select power(2,(6-1)) donne 32 au lieu de 64, c'est là votre problème :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    IF (COLUMNS_UPDATED() & 39) = 39
    BEGIN
       <traitement>
    END
    A++

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/04/2015, 14h29
  2. Passage paramètre trigger vers fonction
    Par candi_de dans le forum Requêtes
    Réponses: 3
    Dernier message: 16/08/2010, 21h34
  3. Réponses: 4
    Dernier message: 08/03/2010, 19h39
  4. Trigger appel Fonction Java
    Par titexe dans le forum PL/SQL
    Réponses: 5
    Dernier message: 14/04/2008, 12h49
  5. Trigger fonction en C
    Par prezgob dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 18/02/2005, 18h06

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