日期:2014-05-16 浏览次数:20395 次
前言:想学习使用触发器的话,建议先学习下存储过程,触发器也算是存储过程吧!
好下面简单的介绍一下触发器的基本概念,有些比较深入的问题,我们暂时不作为讨论范围,我们只讨论初学者如何接触和使用简单的触发器。我想大家都应该都知道触发器是干什吗的吧?这里我就不多说了。
下面定义触发器:
create trigger trigger_Name on table_Name {Instead of |after} insert|update|delete as T-sql
1、trigger_Name 触发器名称
2、table_Name 需要操作的表名,注意不是级联的表!
3、Instead of |after 这是两种不同的触发器,instead Of 可以操作表和视图,after 只能操作表
4、insert|update|delete 你将要对该表做什么操作
5、T-sql 当你对当前表进行第4条所指定的操作时,T-sql就是所要执行的代码
比如说一个简单的例子:
现在你们公司有两个表,第一张是商品表,第二张是用户订单,两表通过商品表作为外键进行关联。现在又一件商品卖完了,所以要删掉数据,可想而知,用户下的此商品的所有订单都要被删掉了。当然可以用存储过程做,不过今天我们来演示一下触发器的简单使用,希望大家能简单的使用,从而慢慢深入研究,此后还靠大家苦心研究。
create trigger triGoods
on T_Goods
after delete
as
delete from T_Orders where gid in (select ID from deleted)
好,创建好了怎么使用呢?
这个就跟你没关系了,只要你在商品表执行删除工作,就会执行这个触发器,从而就删除了你的级联表订单表的相关联的数据
特别说明一下:
大家注意有一句select ID from deleted,这个deleted表是当你进行删除的时候你删除的数据系统就会给你保存到这个临时表中,如果你要创建insert触发器时,有个Inserted也是这个意思。
好了,相信这个简单的例子大家都知道触发器是啥玩意了吧!
申明一下啊,本博客只是讲述了最简单的触发器使用,欢迎各位大牛过来吐槽!