Je suis un peu confus sur ce qui se passe dans ce code:
J'obtiens ces messages:
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 DECLARE @RC int DECLARE @code_article varchar(20) DECLARE @designation varchar(50) DECLARE @id bigint DECLARE @message varchar(80) -- Définir les valeurs de paramètre set @code_article = 'codearticle 1 test creer article' set @designation = 'designation 1 test creer article' print 'waat '+convert (varchar, @@trancount) BEGIN TRANSACTION print 'weet '+convert (varchar, @@trancount) select TOP 1 @code_article=code_article from article print 'wiit '+convert (varchar, @@trancount) EXEC @RC = [Sprout].[dbo].[creer_article] @code_article, @designation, @id OUTPUT , @message OUTPUT print 'woot '+convert (varchar, @@trancount) ROLLBACK TRANSACTION print 'wuut '+convert (varchar, @@trancount)
La procédure stockée ouvre une transaction pour vérifier que le code_article n'existe pas encore. Dans mon cas, j'ai fait exprès de sélectionner un code_article qui existe, voir comment elle se comporte. Dans ces cas-là, je fais un rollback. J'ai regardé à l'intérieur, mais il n'y a pas de rollback en trop.Envoyé par Analyseur de Requêtes
Alors, y-a-t'il quelque chose que je n'ai pas vu?
Un truc que je n'ai pas compris à propos des transactions immbriquées?
Est-ce que Joannachoisira Christophe ou Marc?
Contexte:
Je suis en train d'écrire un script de test pour cette procédure stockée, et pour pouvoir tranquilement tabasserla base de données sans effets secondaires, je voulais encadrer le tout dans un espèce de grande transaction que je 'rollbacke' à la fin. Hop, ni vu ni connu, j'ai fait mes tests et personne a rien vu.
Partager