Procedure ne s'execute pas
Bonjour,
J'ai la procédure suivante créer sur une instance 2008
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 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 :D
Merci par avance