浅入浅出SQL Server 触发器

本文深入讲解SQL触发器的概念,演示如何使用SQL语句创建触发器,以解决删除表中记录时因外键约束引发的问题。通过实例,展示了在删除新闻分类前,如何先删除关联的评论和新闻,确保数据一致性。

什么是触发器

简单的来说,在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 --结束 
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LLLDa_&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值