Bonjour

J'ai créé un trigger pour logger tous les updates sur une table
Mais le code ci-apres en raison du inner join ne traite ni les insert ni les delete, je dois adapter le code pour cela

Ma question est la suivante :
Afin de d'avoir la la meilleure performance,

- Ai-je intéret a creer 3 Trigger distinct pour Insert, Update, Delete et utiliser le code ci apres uniquement pour un AFTER UPDATE
- ou bien completer mon trigger actuel en ajoutant un AFTER Delete et ajouter aussi le code nécessaire pour traiter correctement l'Insert et le Delete

Instinctivement cela semble un peu lourd et je pencherais pour trois trigger distinct ?

Merci de votre aide


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
CREATE TRIGGER [dbo].[ProgramModelPriceChanged]
   ON  [dbo].[ProgramModelPrice]
   AFTER  INSERT,UPDATE
AS 
BEGIN
	SET NOCOUNT ON;
	BEGIN 
INSERT INTO [dbo].[ProgramModelPriceModification]
           ( 
       PrgCode
      ,HRK
      ,OldPrgPrice
      ,NewPrgPrice
      ,OldPrice
      ,NewPrice
      ,DateUPD
      ,who
)
SELECT 
 a.PrgCode,
 a.HRK,
 b.PrgPrice AS OldPrgPrice,
 a.PrgPrice AS NewPrgPrice, 
 b.NewPrice AS OldPrice,
 a.NewPrice AS NewPrice,
 getdate(),
 a.who
 from inserted a 
 INNER JOIN deleted b ON a.pkid=b.pkid
 END
 
END