|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : mai 2002 Messages : 95 ![]() |
Bonjour,
J'ai créé un trigger sur une table pour alimenter une autre table afin de conserver toute modification de colonnes. Ainsi, je pourrai savoir qui a modifié quoi et quand. Dans mon trigger je place autant de ligne qu'il y a de colonne dans ma table. Exemple : si j'ai trois colonnes (NOM, ADRESSE, VILLE) à tester je fais Code :
Sur une table avec 20 champs, cela ferait beaucoup de ligne. Y aurait-il une possibilité d'utiliser une boucle ? Merci d'avance pour votre aide |
||
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : avril 2003 Messages : 76 ![]() |
Bonjour
Dans ton code, tu répète les même instructions. Serait-il intéressant de faire une procédure stockée avec pour parametres d'entrées, la date, l'heure, le user, nom du champ, ancienne valeur et nouvelle valeur, etc ? Dans ton trigger, tu effectue autant d'EXECUTE PROCEDURE Gestion_Trace_Tables(...) que de champs à surveiller. Mais en creusant un peu plus, il faut essayer en listant les colonnes de la table et faire un EXECUTE STATEMENT pour chaque colonne. C'est à vérifier. Covao |
|
|
00
|
|
|
#3 | ||
|
Membre du Club
![]() Inscription : avril 2003 Messages : 76 ![]() |
Voici le test dans le cas tordu que j'ai imaginé pour répondre à cette demande. Voici le code :
La procédure GestionTrace est fidèle à l'idée de départ. C'est à dire de l'insertion d'une ligne dans la table trace si la valeur d'une colonne d'une table est modifiée. Code :
Code :
"EXECUTE PROCEDURE GESTIONTRACE('Tiers',ID,?ktdq2ID, ?ktdq1ID);"
|
||
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : mai 2002 Messages : 95 ![]() |
Bonjour et merci pour votre réponse
(Meilleurs voeux pour 2012 avant tout) Je vais creuser quand même votre idée Merci encore pour votre aide Cordialement |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com