Je n'ai pas trouvé l'erreur
Envoyé par
fsmrel
Vu. Je vais bétonner un peu le trigger.
J'ai fait ça et là ça passe mais ce n'est peut-être pas la façon de faire
USE [DZINDZIO_TRUCKS_MANAGEMENT_GIL_TEST]
GO
/****** Object: Trigger [dbo].[DIFFERENTIAL_COMPOSANT_INSERT_TR] Script Date: 2018-11-27 17:17:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[DIFFERENTIAL_COMPOSANT_INSERT_TR] ON [dbo].[DIFFERENTIAL_COMPOSANT_V] INSTEAD OF INSERT
AS
DECLARE @AxlenumeroSerie AS VARCHAR(48)
----------DECLARE @DifNumeroSerie AS VARCHAR(48)
----------DECLARE @DiffId as int
-----SET @DifNumeroSerie = (select NumeroSerie from DIFFERENTIAL_COMPOSANT_V)
-----set @DiffId = (select DiffId from DIFFERENTIAL where DiffSerialNumber = @DifNumeroSerie)
SET @AxlenumeroSerie =
(SELECT NumeroSerie
FROM INSERTED AS x JOIN DIFFERENTIAL AS y ON x.NumeroSerie = y.DiffSerialNumber
JOIN DIFF_AXLE AS z ON y.DiffId = z.DiffId
JOIN COMPOSANT AS u ON u.ComposantId = z.AxleId)
INSERT INTO COMPOSANT
(
ComposantDateAchat
, Fabriquant
, Modele
, ComposantType
)
SELECT
----- COALESCE(DateAchat, CAST('9999-12-31' as DATE))
----- COALESCE(DateAchat, (SELECT DateAchat FROM AXLE_COMPOSANT_V WHERE NumeroSerie = @AxlenumeroSerie))
COALESCE(DateAchat, '9999-12-31')
, COALESCE(Fabriquant, '0')
, COALESCE(Modele, '0')
, 'd'
FROM INSERTED
;
UPDATE COMPOSANT
SET ComposantDateAchat = '9999-12-31' WHERE ComposantDateAchat < '1940-01-01'
INSERT INTO DIFFERENTIAL
(
DiffId
, DiffSerialNumber
, DiffType
, DiffRatio
, DiffGVWR
, DiffTorque
, DiffLock
, DiffPowerDivideLock
, DiffSerie
)
SELECT
(SELECT MAX(ComposantId) FROM COMPOSANT)
, NumeroSerie
, DiffType, Ratio
, COALESCE(GVWR, 0)
, COALESCE(Torque, 0)
, Lock, PDLock
, COALESCE(Serie, '0')
FROM INSERTED
;
Partager