多个操作语句的触发器为什么在执行时,只执行了第一句?
这个问题困扰了我好久,记得第一次遇到这个问题是半个月前,做牛腩新闻发布系统的数据库遇到这个问题,是关于级联删除的:当我们删除新闻类别的时候,由于外键的原因,我们无法删除新闻类别下有新闻内容的记录,但是通过如下触发器,我们就可以实现:
create trigger trigcategorydelete
on category
instead of delete
as
begin
declare @id int --定义一个变量id
select @id=id from deleted --从deleted临时表中,赋值id给变量@id
delete news where caId=@id --先删除该类别下的所有新闻
delete category where id=@id --然后删除新闻类别
end
当时学习这里的时候,重点在“级联删除”。看完视频后,根据对触发器的理解,自己写的触发器,如下:
-- =======

在执行包含多个操作语句的触发器时,发现只执行了第一句。问题出现在未定义变量导致后续语句未执行。通过修正触发器,使用变量并确保其正确赋值,解决了这个问题。细节决定成败,提醒我们在编程时要注重每个小细节,避免类似问题的发生。
最低0.47元/天 解锁文章
819

被折叠的 条评论
为什么被折叠?



