宏盛

博园第一篇触发器

触发器:
触发器是一个特殊的存储过程。
常用的触发器有三种:insert,update,delete
create trigger tr_name
on table/view
{for|after |instead of}[update][,][insert][,][delete]
[with encryption]
as
{batch|if update(col_name)[{and|or}update(col_name)]}
说明:
1.tr_name :触发器名称
2,on table /view:触发器所作用的表。一个触发器只能作用于一个表
3. for和after :同义
4 after 与instead of :sql2000新增项目 after与instead of 的区别
after
在触发事件发生以后才被激活,值可以建立在表上
instead of
代替了相应的触发器事件被执行,既可以建立在表上也可以建立在视图上
5,insert ,update,delete 激活触发器三种操作,可以同时执行,也可选其一
6,if update(col_name):表明所操作对指定列是否有影响,有影响则被激活,此外因为delete操作只是对行有影响,所以如果使用delete操作,就不能用这条语句了(虽然用也不错,但是不能激活触发器,没意义)
7,触发器执行使用的两个特殊表,deleted ,inserted
deleted ,inserted可以说是特殊临时表,是在进行激活触发器时有系统自动生成,其结构与触发器作用的表结构是一样的,只是存放数据有差异
deleted 与inserted数据的差异
inserted 存放进行insert和update操作后的数据
deleted存放进行delete和update操作前的数据
update 操作想打野先进行delete再进行insert,所以在操作进行update操作时,修改前的数据拷贝一条到deleted表中,修改后的数据存到触发器作用的表中,同时还要拷贝一条inserted表中

posted on 2016-08-03 10:34  宏盛  阅读(126)  评论(0编辑  收藏  举报