Bonjour, j'ai un gros problèmes avec mes transactions imbriquées.
J'ai un procédure stockée principale PROC1 qui appelle une procédure stockée
PROC2 qui elle même appelle une
procédure stockée PROC3.
Chacunes des ces procédures stockées ouvre une transaction et la valide ou
l'annule suivant le cas.
Lorsque je passe dans le rollback de PROC3, j'ai une erreur SQL me disant
qui reste encore 2 transactions d'ouvertes
Comment peut-on palier à ce problème.
Merci d'avance
Steph
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Med Bouchenafa[MVP]
L'imbrication des transactions est quelque chose d'assez subtile dans SQL/Server. Bien lire l'Aide En Ligne avant de se lancer Il est facile d'imbriquer involontairement des transactions. J'ai vu beaucoup de personnes mettre systématiquement des BEGIN TRAN Tn /ROLLBACK TRAN Tn ou COMMIT TRAN Tn dans les procédures stockées. Le fait de nommer les transactions ne change rien. On ne peut que rollbacker la transaction la plus externe.
L'exemple suivant ne fonctionnera pas. BEGIN TRAN T0
BEGIN TRAN T1 ROLLBACK TRAN T1 ROLLBACK TRAN T0 On ne peut pas rollbacker T1. mais uniquement T0 comme dans l'exemple suivant
BEGIN TRAN T0
BEGIN TRAN T1 ROLLBACK TRAN T0 ROLLBACK TRAN T0
Par contre, il vaut mieux utiliser les points de reprise par SAVE TRAN BEGIN TRAN T0
SAVE TRAN T1 ROLLBACK TRAN T1 ROLLBACK TRAN T0
-- Salutations Med Bouchenafa TETRASET 75015 Paris
"TAGG INFO NEWS" wrote in message news:bg62v7$am1$
Bonjour, j'ai un gros problèmes avec mes transactions imbriquées. J'ai un procédure stockée principale PROC1 qui appelle une procédure
stockée
PROC2 qui elle même appelle une procédure stockée PROC3. Chacunes des ces procédures stockées ouvre une transaction et la valide ou l'annule suivant le cas. Lorsque je passe dans le rollback de PROC3, j'ai une erreur SQL me disant qui reste encore 2 transactions d'ouvertes Comment peut-on palier à ce problème. Merci d'avance Steph
L'imbrication des transactions est quelque chose d'assez subtile dans
SQL/Server.
Bien lire l'Aide En Ligne avant de se lancer
Il est facile d'imbriquer involontairement des transactions.
J'ai vu beaucoup de personnes mettre systématiquement des BEGIN TRAN Tn
/ROLLBACK TRAN Tn ou COMMIT TRAN Tn dans les procédures stockées.
Le fait de nommer les transactions ne change rien. On ne peut que rollbacker
la transaction la plus externe.
L'exemple suivant ne fonctionnera pas.
BEGIN TRAN T0
BEGIN TRAN T1
ROLLBACK TRAN T1
ROLLBACK TRAN T0
On ne peut pas rollbacker T1. mais uniquement T0 comme dans l'exemple
suivant
BEGIN TRAN T0
BEGIN TRAN T1
ROLLBACK TRAN T0
ROLLBACK TRAN T0
Par contre, il vaut mieux utiliser les points de reprise par SAVE TRAN
BEGIN TRAN T0
SAVE TRAN T1
ROLLBACK TRAN T1
ROLLBACK TRAN T0
--
Salutations
Med Bouchenafa
TETRASET
75015 Paris
"TAGG INFO NEWS" <tagg.research@tagginfo.com> wrote in message
news:bg62v7$am1$1@s1.read.news.oleane.net...
Bonjour, j'ai un gros problèmes avec mes transactions imbriquées.
J'ai un procédure stockée principale PROC1 qui appelle une procédure
stockée
PROC2 qui elle même appelle une
procédure stockée PROC3.
Chacunes des ces procédures stockées ouvre une transaction et la valide ou
l'annule suivant le cas.
Lorsque je passe dans le rollback de PROC3, j'ai une erreur SQL me disant
qui reste encore 2 transactions d'ouvertes
Comment peut-on palier à ce problème.
Merci d'avance
Steph
L'imbrication des transactions est quelque chose d'assez subtile dans SQL/Server. Bien lire l'Aide En Ligne avant de se lancer Il est facile d'imbriquer involontairement des transactions. J'ai vu beaucoup de personnes mettre systématiquement des BEGIN TRAN Tn /ROLLBACK TRAN Tn ou COMMIT TRAN Tn dans les procédures stockées. Le fait de nommer les transactions ne change rien. On ne peut que rollbacker la transaction la plus externe.
L'exemple suivant ne fonctionnera pas. BEGIN TRAN T0
BEGIN TRAN T1 ROLLBACK TRAN T1 ROLLBACK TRAN T0 On ne peut pas rollbacker T1. mais uniquement T0 comme dans l'exemple suivant
BEGIN TRAN T0
BEGIN TRAN T1 ROLLBACK TRAN T0 ROLLBACK TRAN T0
Par contre, il vaut mieux utiliser les points de reprise par SAVE TRAN BEGIN TRAN T0
SAVE TRAN T1 ROLLBACK TRAN T1 ROLLBACK TRAN T0
-- Salutations Med Bouchenafa TETRASET 75015 Paris
"TAGG INFO NEWS" wrote in message news:bg62v7$am1$
Bonjour, j'ai un gros problèmes avec mes transactions imbriquées. J'ai un procédure stockée principale PROC1 qui appelle une procédure
stockée
PROC2 qui elle même appelle une procédure stockée PROC3. Chacunes des ces procédures stockées ouvre une transaction et la valide ou l'annule suivant le cas. Lorsque je passe dans le rollback de PROC3, j'ai une erreur SQL me disant qui reste encore 2 transactions d'ouvertes Comment peut-on palier à ce problème. Merci d'avance Steph