Encore et toujours transaction...

cs_Malkuth Messages postés 268 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 24 avril 2013 - 11 oct. 2006 à 12:28
cs_skweeky Messages postés 259 Date d'inscription mercredi 3 mai 2006 Statut Membre Dernière intervention 11 janvier 2010 - 24 oct. 2006 à 18:31
Bijours,

Encore des questions sur les transactions !

Si j'ai une procedure stocké avec Transaction et qu'elle déclenche un trigger qui utilise un autre utilisateur pour s'éxécuter, la transaction de la procédure stocké contiendra t'elle les opérations du trigger? sinon, est-il judicieux de créer une transaction dans celui-ci, auquel cas si la PS fait un Rollback, Déclenchera t'elle les triggers inverse de ceux déclencher Pendant le traitement de la PS.

EX:
PS:
-----
BEGIN TRAN
INSERT TABLE A
ROLLBACK TRAN

TRG INSERT TBL A Dans autre context utilisateur:
-----
..?...

TRG DELETE TBL A Dans autre context utilisateur:
-----
..?...

Lors de l'insert ca déclenche le trigger INSERT, mais lors du rollback, Est-ce que le trigger DELETE serat Déclencher

Sinon y'a t'il un moyen de provoquer ce comportement.

1 réponse

cs_skweeky Messages postés 259 Date d'inscription mercredi 3 mai 2006 Statut Membre Dernière intervention 11 janvier 2010 8
24 oct. 2006 à 18:31
Bonjour,

Premièrement le contexte d'execution du trigger est toujours celui de l'utilisateur qui a provoqué le déclenchement du trigger sauf à passer des commandes particulières dans le trigger pour changer ce contexte.

Le ROLLBACK s'execute toujours de manière complète (sauf cas du SAVE) et ne consiste pas à faire un INSERT si on fait un ROLLBACK d'un DELETE c'est une opération tout autre.

Pour schématiser, mettons que les modifications des données ne sont pas inscrites sur le disuqe tant qu'il n'y a pas de COMMIT et un ROLLBACK revient donc à effacer des données en mémoire.

Cordialement

Christian Robert - Winwise
http://blogs.developpeur.org/christian/
MCT - Database Development / Database Administration
0
Rejoignez-nous