Bonjour,
Je débute en SQL SERVER et je suis confronté à un problème.
Je dois mettre à jour un champs qui se nomme ETDCONF dans ma table F_DOCLIGNE en fonction de la modification d'un autre champs date DO_Date
C'est simple , après l'ajout ou la modification de ETD1, je souhaite stocker dans ETDCONF une date calculé qui sera la somme de DO_Date et une durée qui se trouve dans une autre table d'une autre base(voir ci dessous)
J'ai une table dans une autre base de donnée ( leadtime) avec les informations de temps de production. Seul 2 résultats de cette table m'intérressent pour ce trigger.
Voici mon trigger :
à la modification d'une ligne de ma table docligne, mon trigger à l'air de planter et tourner en boucle. Il s'agit très certainement d'un problème de conception/logique du trigger mais après recherche , je n'arrive pas à trouver la solution.
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 USE [XXX] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TRIGGER [dbo].[updateETD] ON [XXX].[dbo].[F_DOCLIGNE] FOR INSERT, UPDATE AS BEGIN DECLARE @dureeTW int DECLARE @dureeCK int DECLARE @maref varchar(50) SELECT @maref = DO_ref from [xxx].[dbo].[f_docligne] SELECT @dureeCK = duree from [LOGISTIQUE].[dbo].[leadtime] where libelle LIKE 'PRODCK' SELECT @dureeTW = duree from [LOGISTIQUE].[dbo].[leadtime] where libelle LIKE 'PRODTW' if(@maref LIKE '%CK%') update [xxx].[dbo].[f_docligne] set ETDCONF = DATEADD (day,@dureeCK,DO_Date); else update [xxx].[dbo].[f_docligne] set ETDCONF = DATEADD (day,@dureeTW,DO_Date); SET NOCOUNT ON END
Si quelqu'un peut me mettre sur la piste ou me donner un conseil , je suis preneur et serais extrêmement ravi.
Merci beaucoup
Benjamin122
Partager