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 :

Autorisation de désactivation de trigger


Sujet :

Développement SQL Server

  1. #1
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 68
    Par défaut Autorisation de désactivation de trigger
    Bonjour,

    dans un trigger insert je fais une requête update sur une autre table.

    cette table possède elle même un trigger update, et du coup il se déclenche lorsque mon update est exécuté.

    en fesant un DISABLE,ENABLE du trigger update avant et aprés la requête je peux y remédier.

    le problème est que l'utilisateur de l'appli qui pointe sur la base n'as pas les droits de désactiver les triggers (pas le droit d'alter sur les tables).

    y aura t'il un moyen de lui donner ce droit juste pour le trigger que j'ai besoin de désactiver.

    merci pour vos réponses.

  2. #2
    Membre éclairé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Par défaut
    Salut,

    Peux-tu expliquer un peu mieux ton souci ?
    Pourquoi vouloir empêcher l'autre trigger de s'activer ? Normalement, ceux-ci servent à conserver l'intégrité de ta base, non ?

  3. #3
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 68
    Par défaut
    nous avons deciter de tracer tous les insert et updates de certaines table de la base. et ce trace se fait au niveau du trigger.

    et comme le deuxieme trigger sert aussi faire des traces, le passage va me créer 2 ligne de traces pour la même action
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ALTER  TRIGGER contrat_ins ON dbo.contrat FOR INSERT AS 
    ....
     
    select @id=idSalonOrganise from salon_organise where
    		numero_groupe_salon = @numero_groupe_salon and
    		numero_salon = @numero_salon and 
    		annee_salon_organise = @annee_salon_organise 
    update contrat set idSalonOrganise = @id where
            	numero_groupe_salon = @numero_groupe_salon and
    	        numero_salon = @numero_salon and 
    		annee_salon_organise = @annee_salon_organise  and
    	        numero_contact = @numero_contact and
    		numero_ste_contact = @num_ste_contact
    or si le update se fait, une trace supplémentaire est créée car ça va déclencher le trigger update.
    d'où le bsion de DISABLE, ENABLE avant et aprés l'update.

    voilà, j'espère que mes explication son plus claires.
    merci bcp

  4. #4
    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,

    Tu peux désactiver l'exécution de déclencheurs enchassés (nested triggers) avec cette commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    EXEC sp_configure 'nested triggers', '0'
    RECONFIGURE WITH OVERRIDE
    Attention : cela empêchera tout autre trigger d'être déclenché par une opération effectuée dans un trigger.

  5. #5
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 68
    Par défaut
    merci bcp. c'est exactement ce qu'il me fallait, d'autant plus qu'il n'y a pas de trigger imbriqués dans l'appli

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

Discussions similaires

  1. désactiver un trigger
    Par JustMe dans le forum SQL
    Réponses: 4
    Dernier message: 20/06/2016, 08h59
  2. [SQL2K] Activation et Désactivation de trigger
    Par maitrebn dans le forum Développement
    Réponses: 7
    Dernier message: 04/05/2007, 17h11
  3. Désactiver le trigger en cours
    Par gk14fire dans le forum Oracle
    Réponses: 3
    Dernier message: 05/06/2006, 23h43
  4. [Syntaxe Oracle/Sybase] désactiver un trigger
    Par MashiMaro dans le forum Sybase
    Réponses: 3
    Dernier message: 30/10/2003, 11h17
  5. Désactiver un trigger sous MS Sql Server
    Par WOLO Laurent dans le forum Développement
    Réponses: 6
    Dernier message: 03/07/2003, 12h51

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