cs_Malkuth
Messages postés268Date d'inscriptionsamedi 22 février 2003StatutMembreDernière intervention24 avril 2013
-
11 oct. 2006 à 12:28
cs_skweeky
Messages postés259Date d'inscriptionmercredi 3 mai 2006StatutMembreDernière intervention11 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.
cs_skweeky
Messages postés259Date d'inscriptionmercredi 3 mai 2006StatutMembreDernière intervention11 janvier 20108 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.