Bonjour,
J'ai la procédure suivante créer sur une instance 2008
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;
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)
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