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 ne fonctonnant pas


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 Trigger ne fonctonnant pas
    Bonjour,

    je viens d'associer des triggers d'insertion à des tables dans SQL Server,
    ces derniers doivent normalement renseigner une colonne donnée lors de chaque insert.

    le problème est que dans quelques tables le trigger fonctionne d'une façon intermittente (quelques fois il renseigne la colonnes quelques fois non). je voulais savoir donc d'ou vient ce disfonctionnement.

    par avances merci.

  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,

    probablement la chaleur.

    Pourrais-tu nous poster le code du trigger récalcitrant ?

  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
    je ne pense pas que c la chaleur, il été déja malade avant
    voila le code, en vous remerciant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    ALTER  trigger prestation_contrat_ins
    ON prestation_contrat
    FOR insert
    AS
    	declare @numero_groupe_salon int,@numero_salon int,@annee_salon_organise int, @id int, @numero_ste_contact int, @numero_contrat int
    	select  @numero_groupe_salon = numero_groupe_salon,
    		@numero_salon = numero_salon,
    		@annee_salon_organise = annee_salon_organise,
    		@numero_ste_contact = numero_ste_contact,
    		@numero_contrat = numero_contrat
    	from inserted
     
    	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 
     
    	--initialiser isSalonOrganise
    	update prestation_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_ste_contact = @numero_ste_contact and 
    	  numero_contrat = @numero_contrat

  4. #4
    Membre éclairé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Par défaut
    tu devrais essayer avec les balises de code s'il-te-plait... 8o)

  5. #5
    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
    Donc certainement pas la chaleur. Ton trigger présuppose que la pseudo table inserted ne contient qu'une seule ligne, erreur commune. Si tu fais plusieurs insert dans une seule instruction, il ne remplira pas son office.

    Voici une réécriture faite en vitesse, non testée. A corriger si besoin.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    ON prestation_contrat
    FOR insert
    AS
     
    --initialiser isSalonOrganise
    update pc set idSalonOrganise = so.idSalonOrganise
    from dbo.prestation_contrat pc
    join inserted i on
    	pc.numero_groupe_salon = i.numero_groupe_salon and
    	pc.numero_salon = i.numero_salon and
    	pc.annee_salon_organise = i.annee_salon_organise and
    	pc.numero_ste_contact = i.numero_ste_contact and
    	pc.numero_contrat = i.numero_contrat
    join dbo.salon_organise so on
    	pc.numero_groupe_salon = so.numero_groupe_salon and
    	pc.numero_salon = so.numero_salon and
    	pc.annee_salon_organise = so.annee_salon_organise

  6. #6
    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 c'ete prasque ça.
    en tout c'est bien la cause du problème.

    c tip top.

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

Discussions similaires

  1. trigger ne fonctionnant pas
    Par kifouillou dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 27/02/2008, 18h42
  2. Trigger after insertion pas validée
    Par guigeek dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 20/12/2006, 13h37
  3. Trigger after insertion pas validée
    Par guigeek dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 19/12/2006, 14h23
  4. mon trigger ne fonctionne pas !
    Par japi33 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 20/03/2006, 21h26
  5. Pourquoi ce trigger ne marche pas ??
    Par Le Basque dans le forum Développement
    Réponses: 4
    Dernier message: 20/09/2004, 15h46

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