sql——触发器——存储过程&触发器(3/3)

本文介绍数据库中的触发器概念,解释其作为一种特殊存储过程的工作原理,并通过实例展示如何创建及使用触发器,以实现自动化的数据操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、what?


        什么是触发器(trigger)?

        前两篇介绍了存储过程,存储过程可以理解为sql语句集。那么触发器就是一种特殊的存储过程,也就是一群特殊的sql语句集。

        特殊在哪?

        从上文得知,存储过程是依赖名字才被调用的。不仅是存储过程,我们常用的方法等,大部分也是先知道名字,才能去使用。就像吃饭采用订外卖的形式,总要知道餐厅的名字才能下订单。

        触发器被调用却不用依赖名字。

        还是吃饭这个行为,天天订外卖,只有一家餐厅特别符合胃口,固定这家餐厅。一到吃饭时,就直接下单了。

        触发器就是个固定餐厅的订单。它固定了一些数据库操作的行为,只要一触发事件,就能被驱动。


2、why?


        为什么要用触发器?

        数据库操作无非增删改查,触发器主要作用于Insert、Delete、Update(和Create、Drop、Alter:DDL语言,暂且不讲)。

        当指定表发生此类操作时,自动激活(所以是事件驱动)。根据执行的操作不同,又可分为两类。

        1)After触发器

        当发生Insert、Delete、Update之后,该触发器执行封装好的操作。

        2)Instead of触发器

         当发生Insert、Delete、Update时,该触发器执行替代操作,不执行Insert、Delete、Update,而是执行封装好的操作


3、how?


        创建触发器示例:       

CREATE TRIGGER trigCategoryDelete
   ON  Category
   instead of DELETE   --替代触发器
AS 
BEGIN
    
    ---- 先删除该类别下的所有新闻,再删除该新闻类别
    declare @id int
    select @id = id from deleted 
    delete news where caId =@id 
    delete category where id = @id
END</span>
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值