删除触发器在添加触发器正常工作时不起作用?

问题描述 投票:0回答:1

[删除触发器在添加触发器正常工作时不起作用。

它应该像这样工作:“当我删除得分表中具有subject_id = 1且得分> 8的记录时,exellentEng在类表中将为-1”我不知道为什么帮帮我

ALTER TRIGGER [dbo].[deleteExellentEnglishStudent]
ON [dbo].[dbo_score]
AFTER DELETE AS 
    BEGIN
      UPDATE x SET
        exellent_Eng -=1
      FROM dbo.dbo_class x
      JOIN dbo.dbo_student s ON s.class_id = x.class_id
      JOIN dbo.dbo_score c ON c.student_id = s.student_id
      WHERE (c.subject_id = 1 AND c.score >= 8)
      and c.score_id in (SELECT Deleted.score_id FROM Deleted)
    END
ALTER TRIGGER [dbo].[addExellentEnglishStudent] ON [dbo].[dbo_score]
    AFTER INSERT AS 
    BEGIN
      UPDATE x SET
        exellent_Eng += 1
      FROM dbo.dbo_class x
      JOIN dbo.dbo_student s ON s.class_id = x.class_id
      JOIN dbo.dbo_score c ON c.student_id = s.student_id
      WHERE (c.subject_id = 1 AND c.score >= 8)
      AND c.score_id IN
      (select Inserted.score_id from Inserted)
    END
sql-server database-trigger
1个回答
0
投票
ALTER TRIGGER [dbo].[deleteExellentEnglishStudent] ON [dbo].[dbo_score] AFTER DELETE AS BEGIN UPDATE x SET exellent_Eng -=1 FROM dbo.dbo_class x JOIN dbo.dbo_student s ON s.class_id = x.class_id JOIN dbo.Deleted c ON c.student_id = s.student_id WHERE (c.subject_id = 1 AND c.score >= 8) END
© www.soinside.com 2019 - 2024. All rights reserved.