Gestion d'erreur lors de l'execution d'un trigger

pasbrun Messages postés 11 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 10 mars 2006 - 8 oct. 2005 à 15:46
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 - 14 oct. 2005 à 17:08
Bonjour,



Lors de l'insertion d'un certain type de donnée dans une table, le trigger se reveille.

Celui ci fait des actions dans des tables autre que celle du trigger.

Dans certain cas le code du trigger s'execute mal !!!

Impossible de savoir ou le trigger se plante, mais en plus
l'information qui a reveille le trigger ne se stocke pas dans la table
du trigger : perte des données !!![javascript:Insert_Emoticon('/imgs2/smile_sad.gif'); ]



[javascript:Insert_Emoticon('/imgs2/smile_question.gif'); ]

Comment savoir ou le trigger se plante ?

Comment faire ne pas perdre des données mais en cas de plantage du trigger ?

Peut on faire une gestion d'erreur dans un trigger ?



Le trigger est fait en Sql Serveur 2000 : Type par defaut AFTER





Merci de votre aide.[javascript:Insert_Emoticon('/imgs2/smile_big.gif'); ]

6 réponses

cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
10 oct. 2005 à 13:43
Aves vous essayer de connecter un profiler sur cette base de données ?

Romelard Fabrice (Alias F___)
0
pasbrun Messages postés 11 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 10 mars 2006
11 oct. 2005 à 07:17
Bonjour,



Non je n'ai pas essayer de connecter un profiler sur cette bdd.

Pourriez vous m'expliquer l'utilite d'un profiler et comment faire.



Merci d'avance.
0
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
11 oct. 2005 à 22:46
Le profiler est un outil fourni avec les outils clients d'SQL Server permettant de voir ce qui est exécuté en direct sur le serveur.
Ainsi vous verrez peut être les informations passer lors de la modification via le trigger.
A vérifier, mais ca rend souvent service.

Romelard Fabrice (Alias F___)
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
12 oct. 2005 à 18:06
salut

sinon moi ce que je fais dans ce cas la, je crée une table "trace" avec un champ "variable" et un champ "valeur"
et à différent endroit de mon trigerr je rajoute un
INSERT INTRO trace VALUES("nom de ma variable", maVariable")

pour pouvoir analyser ce qui se passe

je met surtout au debut d'un test :
IF...
BEGIN
INSERT INTO trace...
...reste des instructions
END

pour savoir si je passe ou non dans le bloc (si ma condition est bonne ou pas)...

mais ce n'est qu'une solution comme une autre. personnellement je trouve également que le debuggage de triger n'est pas tres aisé.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pasbrun Messages postés 11 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 10 mars 2006
14 oct. 2005 à 07:08
Bonjours,



Merci de vos reponses, après plusieurs essais sur le trigger voici les resultats !!!



par le profiler : impossible de voir mes curseurs dans le trigger

par gestion @@ERROR : ne fonctionne pas dans un trigger

par ecriture dans une table : fonctionne mais tant que le trigger ne se plante pas, sinon il y a ROOLBACK et toute les données stockées sont éffacées.



La derniere solution à mettre en oeuvre ecriture dans un fichier ascii.

On garde la derniere trace avant le plantage.



Cherche exemple d'ecriture dans un fichier merci..


a+
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
14 oct. 2005 à 17:08
salut,

si tu as deja fait l'ecriture dans une table, tu peux rajouter une ligne pour exporter les donner dans un fichier apres chaque eciture, ca doit aller vite, et tu garde aussi la trace jute avant plantage. c'est juste une proposition, personnelement, ecriture directe dans un fichier, j'ai jamais fait
0
Rejoignez-nous