为什么即使nb_aff为30,它仍然会加1?
CREATE TRIGGER T
ON affectation
AFTER INSERT
AS
DECLARE @A INT
SELECT @A = nb_aff
FROM EQUIPEMENT
IF @A < 30
BEGIN
UPDATE EQUIPEMENT
SET nb_aff = nb_aff +1
FROM EQUIPEMENT M
INNER JOIN INSERTED I ON M.code_eq = I.cod_eq
END
答案 0 :(得分:0)
因为你读错了nb_aff
select @A = nb_aff from EQUIPEMENT
您可以像这样更改此行
select @A = nb_aff from EQUIPEMENT M
INNER JOIN INSERTED I ON M.code_eq = I.cod_eq
或者您可以像这样更改所有触发器。
CREATE TRIGGER T ON affectation AFTER INSERT AS
UPDATE EQUIPEMENT
SET nb_aff = CASE WHEN nb_aff < 30
THEN nb_aff + 1
ELSE nb_aff END
FROM
EQUIPEMENT M
INNER JOIN INSERTED I ON M.code_eq = I.cod_eq