SQL简述--触发器
Posted 小wu年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL简述--触发器相关的知识,希望对你有一定的参考价值。
什么是触发器
触发器对表进行插入、更新、删除的时候会自动执行的特殊存储过程,它可以定义比CHECK约束更为复杂的约束,sql server 中触发器分为两类一类是DDL(数据定义语言如:create,alter,drop),一类是DML(数据操作语言如:select,delete,update,insert),我们平常使用一般是DML类型的触发器,这里主要讲述DML类型触发器。
DML类型的触发器分为两类:
1、After触发器
After触发器要求只有执行某一操作insert、update、delete之后触发器才被触发,且只能定义在表上
2、Instead of触发器
Instead of 触发器表示并不执行其定义的操作(insert、update、delete)而仅是执行触发器本身。既可以在表上定义instead of触发器,也可以在视图上定义
触发器常用的两张表介绍inserted和deleted
触发器有两个特殊的表:插入表(instered表)和删除表(deleted表),这两个表是只读的逻辑表(虚表),表结构总是和被写触发器的表结构相同,只存在系统内存中,不会存储在数据库中,触发器完成工作后,这两张表就会被删除。
Inserted表的数据是插入的数据或是修改后(更新后)的数据
deleted表的数据是被删除的数据或是修改前(更新前)的数据
语法
CREATE TRIGGER trigger_name ON {table_name | view_name} {FOR | After | Instead of } [ insert, update,delete ] AS sql_statement
1、触发器新增(insert)
业务场景:当表A新增数据的时候,同时将新增的数据插入到表B
create trigger tri_lcsp_RYLZ on A after insert as begin
insert into B ( A018,--姓名
A420,--工号 A421,--部门 A422,--岗位 A426,--入职日期 A428,--离职日期 A424,--离职类型 A427,--离职原因 A425--oa流水号 ) select XM,RYBH,SZBM,GW,RZRQ,LZRQ,LZLX,LZYY,OALSH from inserted end
2、触发器修改(update)
3、触发器删除(deleted)
4、触发器 instead of
以上是关于SQL简述--触发器的主要内容,如果未能解决你的问题,请参考以下文章