【SQL】触发器

前言

触发器「trigger」是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法
它是与表事件相关的特殊的存储过程
它的执行不是由程序调用,也不是手工启动,而是由事件来触发,当对一个表进行操作「 insert,delete, update」时就会激活它执行

区别

触发器与存储过程的唯一区别是触发器不能执行EXECUTE语句调用,而是在用户执行Transact-SQL语句时自动触发执行

作用

  • 强制数据库间的引用完整性
  • 级联修改数据库中所有相关的表,自动触发其它与之相关的操作
  • 跟踪变化,撤销或回滚违法操作,防止非法修改数据
  • 触发器可以强制比用 CHECK 约束定义的约束更为复杂的约束,与 CHECK 约束不同,触发器可以引用其它表中的列

分类

DML触发器

  • After触发器
  • After触发器要求只有执行某一操作insert、update、delete之后触发器才被触发,且只能定义在表上
  • insert触发器
  • update触发器
  • delete触发器
  • Instead of 触发器
  • Instead of 触发器表示并不执行其定义的操作(insert、update、delete)而仅是执行触发器本身。既可以在表上定义instead of触发器,也可以在视图上定义

应用

这里写图片描述

  • 问题原因:主外键相互关联,在删除其中一个表中数据时,会判断是否为另一个表中外键并在另一表中含有数据,若有数据则不可删除。由此需要使用触发器。

步骤

  • 右键新建触发器
    这里写图片描述
    这里写图片描述
  • 刷新
    这里写图片描述

结语

使用触发器请慎重,计算机并没有你的小脑袋瓜聪明,触发器是针对表创建的,所以只有在改变你设定的表的状态时才会触发

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值