Accueil > Forum > > > > Un trigger qui ne fonctionne pas à 100%
Un trigger qui ne fonctionne pas à 100%
samedi 22 août 2009 à 10:57:45 |
Un trigger qui ne fonctionne pas à 100%

Aldo38
|
Bonjours à toutes et à tous,
Par soft je crée une facture composée d’un enregistrement principale dans une table facture,
suivi d’enregistrements dans une autre table(TAB_ACT), lié par un ID à la table facture.
J’ai écrit un trigger qui devait me permettre de mettre à jour, dans le cas d’une insertion
ou d’un update, une colonne dans la table liée TAB_ACT (il s’agit d’un ID qui fait référence à une troisième table).
Le problème auquel je suis confronté est le suivant :
Lorsque je dois mettre à jour plusieurs enregistrements de la table liée (TAB_ACT), un seul
enregistrement est mis à jour.
J’avoue avoir essayé plusieurs syntaxes, mais je suis sec. Je n’arrive pas à mettre à jour
tous les enregistrements de la table liée en insert ou en update.
Voici le trigger :
CREATE TRIGGER TR_UpdACT_sql
ON TAB_ACT FOR INSERT,UPDATE as
declare
@ActRef varchar(10),
@ActId int,
@ActIdInter int,
@ActNature tinyint,
@ActDate datetime
begin
select @ActRef =TAB_ACT.ACTREF, @ActId = TAB_ACT.ACTID, @ActNature = TAB_ACT.ACTNATURE,
@ActDate = TAB_ACT.ACTDATE FROM TAB_ACT
IF (@ActId is NULL)
BEGIN
IF (@ActNature=0)
BEGIN
-- Ici je recherche l'ID que je vais mettre dans la colonne ACTID de la tabe TAB_ACT
select @ActIdInter = (select DICT_ACT.ACTID from DICT_ACT WHERE DICT_ACT.ACTCODE
= @ActRef AND DICT_ACT.APPLICDATE IS NOT NULL AND CONVERT
(datetime,DICT_ACT.APPLICDATE,103)=( select MAX(DICT_ACT.APPLICDATE)
FROM DICT_ACT WHERE DICT_ACT.ACTCODE = @ActRef AND (DICT_ACT.EXPIRADATE IS NULL OR
DICT_ACT.EXPIRADATE > CONVERT(datetime, @ActDate,103))
AND DICT_ACT.APPLICDATE < CONVERT(datetime, @ActDate,103)))
-- Ici je mets à jour l'enregistrement. Quand je crée deux enregistrements il semblerait
- que seul le deuxième soit mis à jour
UPDATE TAB_ACT SET ACTID = @ActIdInter where ACTREF = @ActRef and ACTDATE = @ActDate
END
END
END
Je ne suis pas expert en procédure stokckée (je fais de l'auto formation), alors si quelqu’un a une idée, elle sera la bienvenue. Merci par avance.
|
|
lundi 24 août 2009 à 11:47:32 |
Re : Un trigger qui ne fonctionne pas à 100%

nivsql
|
Déjà si je peux me permettre, un code lisible et correctement indenté permet un debugage plus facile, la c'est tout simplement illisible et rebutoire.
Ensuite ton code me fait tout simplement bondir...
Code : select @ActRef =TAB_ACT.ACTREF, @ActId = TAB_ACT.ACTID, @ActNature = TAB_ACT.ACTNATURE,
@ActDate = TAB_ACT.ACTDATE FROM TAB_ACT
Sans clause WHERE ? donc tu n'a aucune idée de la ligne renvoyé ... un fois de temps a autre c'est celle que tu voulais tu as de la chance, les autres fois ce sont des lignes qui ne t'interressent pas ... Magie de l'aléatoire :)
La correction ? assure toi que cette requete ne te renvois qu'une ligne et une seule ! (et tant qu'a faire, celle dont tu as besoin !)
|
|
Cette discussion est classée dans : table, tab, act, dict, actref
Répondre à ce message
Sujets en rapport avec ce message
requete SQL INSERT tableau 2D dans table sql [ par LaTatadu91 ]
Bonjour,je debute en SQL, je precise avant tout!je programme actuellement un petit logiciel sous VC++ et j'effectue quelques requetes SQL pour attaque
intégrer une sequence dans une requete [ par sana83 ]
bonsoir à tous, j'ai crée une sequence [b]seq_j[/b] et une table [b]table_j [/b] [code=autre] create sequence seq_j increment by 1 start with 1 nomax
requete sql [ par lamylamya12 ]
Bonjour a tous, voila je suis en train de travailler sur une application que je fais pour mon stage, et je dois écrire une requête qui doit me permett
sql:insertion dans 2 tables liées [ par ti7a ]
Bonjour, slt tt le monde bon j'ai deux tables : la table voiture (id_voiture,id_marque ,couleur,ville.............); et la table option (id_option,
probleme requete sql java [ par profiter ]
bonjour, j'ai les deux tables suivantes : [code=java] public static final String table_concerne_devis__Name = "concerne_devis"; static final String[
comment modifier ou supprimer une table ou on a que les cles primaire [ par iliastafom ]
Bonjour a tous! j'ai un problème je n'arrive pas à modifier une table intermédiaire( un relation tertiaire) posteservice(idpost,iddir,idser,idp,theDat
Calcul de durée par différence entre 2 enregistrements [ par axvier ]
Bonjour, Je "débute" sur SQL server et je me retrouver confronter à un besoin assez spécifique. Je dispose d'une table que l'on appelera "matable" c
update d'une table dans une autre [ par maxtrident ]
bonjour je n'arrive pas a transférer les champs de la table rc profits dans une autre table histogains...quelqu'un peut m'aider ?...je n'ai pas de mes
Erreur oracle error ORA-01747: spécification utilisateur.table.colonne, table.colonne ou colonne non valide [ par midoxe ]
Bonjour, C'est la première fois que je viens sur ce forum d'SQL les amis[^^happy13] je rencontre un problème bizarre que je n'ai jamais rencontré su
trigger et table [ par sana83 ]
bonsoir, est ce que je peux faire deux trigger update sur une table "article"? 1er: sur toute la table 2eme : sur une colonne ou 2, 3,...(exple: prix_
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : ORACLE FORMSRE : ORACLE FORMS par csmahicham
Cliquez pour lire la suite par csmahicham
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|