sql——触发器——存储过程&触发器(3/3)
2015-08-30 22:41
375 查看
1、what?
什么是触发器(trigger)?
前两篇介绍了存储过程,存储过程可以理解为sql语句集。那么触发器就是一种特殊的存储过程,也就是一群特殊的sql语句集。
特殊在哪?
从上文得知,存储过程是依赖名字才被调用的。不仅是存储过程,我们常用的方法等,大部分也是先知道名字,才能去使用。就像吃饭采用订外卖的形式,总要知道餐厅的名字才能下订单。
触发器被调用却不用依赖名字。
还是吃饭这个行为,天天订外卖,只有一家餐厅特别符合胃口,固定这家餐厅。一到吃饭时,就直接下单了。
触发器就是个固定餐厅的订单。它固定了一些数据库操作的行为,只要一触发事件,就能被驱动。
2、why?
为什么要用触发器?
数据库操作无非增删改查,触发器主要作用于Insert、Delete、Update(和Create、Drop、Alter:DDL语言,暂且不讲)。
当指定表发生此类操作时,自动激活(所以是事件驱动)。根据执行的操作不同,又可分为两类。
1)After触发器
当发生[b]Insert、Delete、Update之后,该触发器执行封装好的操作。[/b]
2)Instead of触发器
当发生[b]Insert、Delete、Update时,该触发器执行替代操作,不执行[b]Insert、Delete、Update,而是执行封装好的操作。[/b][/b]
3、how?
创建触发器示例:
什么是触发器(trigger)?
前两篇介绍了存储过程,存储过程可以理解为sql语句集。那么触发器就是一种特殊的存储过程,也就是一群特殊的sql语句集。
特殊在哪?
从上文得知,存储过程是依赖名字才被调用的。不仅是存储过程,我们常用的方法等,大部分也是先知道名字,才能去使用。就像吃饭采用订外卖的形式,总要知道餐厅的名字才能下订单。
触发器被调用却不用依赖名字。
还是吃饭这个行为,天天订外卖,只有一家餐厅特别符合胃口,固定这家餐厅。一到吃饭时,就直接下单了。
触发器就是个固定餐厅的订单。它固定了一些数据库操作的行为,只要一触发事件,就能被驱动。
2、why?
为什么要用触发器?
数据库操作无非增删改查,触发器主要作用于Insert、Delete、Update(和Create、Drop、Alter:DDL语言,暂且不讲)。
当指定表发生此类操作时,自动激活(所以是事件驱动)。根据执行的操作不同,又可分为两类。
1)After触发器
当发生[b]Insert、Delete、Update之后,该触发器执行封装好的操作。[/b]
2)Instead of触发器
当发生[b]Insert、Delete、Update时,该触发器执行替代操作,不执行[b]Insert、Delete、Update,而是执行封装好的操作。[/b][/b]
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>
相关文章推荐
- Redis集群:redis主从配置
- Redis集群:redis主从自动切换Sentinel
- 和redis谈一场恋爱(第一天邂逅)
- [Oracle] 某游戏大区DB IO负载过高分析
- MySQL(三)之关系型数据库基本特性
- Python爬虫学习记录(5)——python mongodb + 爬虫 + web.py 的acfun视频排行榜
- Memcached线程模型分析
- Redis--Hash类型命令操作
- You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
- Oracle中关联表的视图创建
- sql复习小练习
- 在Sql Server中调用外部EXE执行程序
- 万能的everything彻底解决mysql问题
- mysql隐藏文件一定要删除彻底
- 数据库优化方案
- 关于Oracle Linux,它做了什么
- 如何设置mysql在局域网中访问
- mysql下载地址
- sql server2005和oracle分页查询语句
- Sqlite 数据库 解析以及恢复(一)