触发器——what
触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。
触发器——个人理解
触发器是种特殊的存储过程(存储过程在重构的时候已经介绍过了,这里不再过多的介绍),字面上的意思就是触发一个事件。敲牛腩的时候总共有三个表分别为:comment,news,category,当删除category表中的类别,news表也会删除相应的数据,新闻如果删除comment也会删除,就像多米诺骨牌,一个倒下下面的都会受到影响。触发器所要做的就是当删除类别时触发trigCategoryDelete,达到删除类别时其他两张表自动删除相应内容。
触发器——图
触发器——代码
USE [newssystem]
GO
/****** Object: Trigger [dbo].[trigCategoryDelete] Script Date: 2019/3/10 16:59:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[trigCategoryDelete]
on [dbo].[category]
instead of delete
as
begin
declare @caId int
select @caId=id from deleted
--删除评论
delete comment where newsId in (select newsId from news where caId=@caId)
--删除新闻
delete news where caId=@caId
--删除类别
delete category where id=@caId
end
触发器——感受
学而不思则罔,思而不学则殆!