Bonjour,
J'ai la procédure suivante créer sur une instance 2008
j'ai lancé la proc à plusieurs reprise mais aucune mise à jour n'est effectué (elle aurait du faire 800 update sur la premire requete et 2400 sur la deuxième)
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 CREATE PROCEDURE sp_updateCours AS BEGIN SET XACT_ABORT ON; BEGIN TRY BEGIN TRANSACTION; DECLARE @cours numeric(24 , 6); DECLARE @updated TABLE(cbMarqFA int); SELECT @cours = D_Cours FROM P_DEVISE WHERE cbIndice = 1; UPDATE F_DOCENTETE SET DO_Cours = @cours , DO_Devise = 1 OUTPUT deleted.cbMarq INTO @updated WHERE (DO_Domaine = 0) AND (DO_Type < 6) -- AND (DO_Devise = 1) AND (YEAR(DO_Date) >= 2018) AND (DO_TotalHT > 0) AND (DO_Cours <> @cours); PRINT @@rowcount; UPDATE F_DOCLIGNE SET DL_PUDevise = ROUND(DL_PrixUnitaire * @cours , 3) FROM F_DOCENTETE e INNER JOIN F_DOCLIGNE l ON e.DO_Piece = l.DO_Piece AND e.DO_Type = l.DO_Type INNER JOIN @updated p ON e.cbMarq = p.cbMarqFA; PRINT 'commit'; COMMIT TRANSACTION; END TRY BEGIN CATCH IF(XACT_STATE()) = -1 BEGIN PRINT 'rollback'; PRINT ERROR_MESSAGE(); ROLLBACK TRANSACTION; END; END CATCH; END;
même les print que j'ai fait pour tester ne s'affichent pas , et tout d'un coup elle fonctionne parfaitement.
j'arrive pas à comprendre d'ou vient le problème.
j'attends aussi vos remarques pour améliorer mon code
Merci par avance
Partager