Hello,
Toujours avec mes promos (qui font que je vous pose quelques questions ces derniers temps^^), j'ai créé une procédure stockée qui crée une copie d'une promo.
Je vous passe tout le corps de la procédure car elle fait plus de 200 lignes mais voici ce qui importe pour la question que j'ai :
On vient de faire un test et à un moment, une contrainte de type check n'a pas été respectée. Je m'attendais donc à ce qu'un rollback de toute la transaction soit effectuée. Seulement cela n'a pas été le cas. Des lignes ont été insérées dans certaines tables et n'ont pas été supprimées. J'en déduis donc que le rollback ne s'est pas effectué et je ne comprends pas pourquoi.
Code : 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
21 CREATE PROCEDURE [S_PROMO].[UP_COPY_PROMO] @tous les paramètres qui vont bien AS BEGIN SET NOCOUNT ON; BEGIN TRAN --Tout le corps de la procédure IF @@ERROR <> 0 BEGIN DECLARE @MSG AS VARCHAR(1000) = 'ERROR DURING COPYING THE PROMO'; RAISERROR(@MSG,16,1) ROLLBACK TRAN END ELSE COMMIT TRAN END GO
Dans le corps de la procédure, il n'y a que des select, insert, update. Aucun appel à d'autres procédures stockées.
Partager