salut :=)
Svp je n’arrive pas a exécuter la transaction suivant, qd je provoque une erreur a la fin de transaction (insertion d’une clé déjà existe les requêtes précédente y’a pas un ROLLBACK au niveau de ces requêtes)Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 BEGIN TRANSACTION AjouEleve --On démarre une transaction et on lui donne un nom DECLARE @error INT --On déclare une variable qui sera destiné à accueillir nos erreurs DECLARE @ID_INSERTION NUMERIC(19,0) -- On déclare une variable numérique destinée à contenir l'id inséré SET @error = 0 --initialisation de la variable erreur :=) UPDATE eleve SET nom='make' WHERE IDauditeur=1 SET @error = @error + @@error UPDATE eleve SET nom='jake' WHERE IDauditeur=2 SET @error = @error + @@error --On additionne l'erreur liée à la dernière requête SQL dans notre variable UPDATE eleve SET nom='david' WHERE IDauditeur=3 SET @error = @error + @@error --On additionne l'erreur liée à la dernière requête SQL dans notre variable INSERT INTO eleve VALUES(4,'danil','loup',30,'morad@gmail.fr') SET @error = @error + @@ERROR --On additionne l'erreur liée à la dernière requête SQL dans notre variable INSERT INTO eleve VALUES(4,'coulded','cloud',30,'samad@gmail.fr') SET @ID_INSERTION = @@identity --On récupère la valeur du dernier id inséré et on le stocke dans notre variable print 'Statut de lerreur : ' + CAST(@ID_INSERTION AS VARCHAR(10)) PRINT 'Statut de lerreur : ' + CAST(@error AS VARCHAR(10)) --On affiche le statut de l'erreur casté sous forme de caractère IF @error = 0 --Si errors est égale à 0, donc s'il n'y a eu aucune erreur COMMIT TRANSACTION AjouEleve-- On commit la transaction ELSE --S'il y a eu des erreurs ROLLBACK TRANSACTION AjouEleve--On annule tous les changements de cette transaction
