版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Ming_5257/article/details/83958743
什么是触发器
简单的来说,在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。
触发器的创建
常见的触发器有三种,分别对应于Insert 、Update、Delete事件。
怎么创建触发器呢?在牛腩新闻发布系统中,就需要创建触发器,但是按照视频的操作步骤,我的Sql Server不能直接创建触发器。
当我右键触发器的时候,我的新建触发器的按钮是灰色的!所以就只能用SQL语句来创建了!
1.点击需要创建触发器的数据库,新建查询!
2.输入以下代码、
(背景:在牛腩新闻发布系统中,需要删除新闻分类 category 表中的分类,但是这个表和新闻表还有评论表存在外键,所以在删除分类的时候会报错!所以需要建立触发器,在执行删除新闻分类的时候,先删除该新闻分类下的所有评论,还有该新闻下的所有新闻,然后最后删除这个新闻类别!)
--Author(作者):曹*铭
--Create Date(时间):2018.11.10
--Description(名称):
ALTER TRIGGER [dbo].[trigCategoryDelete] --触发器名称
on [dbo].[category] --选择要建立触发器的表
instead of DELETE --触发条件 插入/删除/更新(任选一个)
AS --伴随
BEGIN --开始执行
declare @caId int --定义一个参数
select @caId=id from deleted --从已经删除的临时表中选出id等于这个参数的数据
--删除评论
delete comment where newsId in(select newsId from news where caId=@caId)
--删除新闻
delete news where caId =@caId
--删除类别
delete category where id=@caId--此处填写触发器要执行的SQL语句(比如,查找刚刚执行删除的内容)
END --结束