【目标】
1.了解触发器的概念及作用
2.理解触发器的语法
3.了解触发器的分类
4.理解触发器的使用
【需求】
1.使用语句级触发器和行级触发器
2.使用触发器模拟mysql中的主键自动增长
【步骤】
1.触发器的概念及作用
2.触发器的语法
3.触发器的分类
4.使用触发器模拟mysql的主键自动增长
【讲解】

一·触发器的概念及作用

一般意义的存储过程,即用户自定义的存储过程喝系统存储过程。触发器:是一种特殊的存储过程。它的作用是一种特殊类型的存储过程,它不同于我们前面介绍过的存储过程。触发器主要是通过事件进行触发而被直接调用。当对某一表进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。当对某一表进行诸如UPDATE、 INSERT、 DELETE 这些操作时,SQL Server 就会自动执行触发器所定义的SQL 语句,从而确保对数据的处理必须符合由这些SQL 语句所定义的规则。触发器的主要作用就是其能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。除此之外,触发器还有其它许多不同的功能:强化约束,跟踪变化,级联运行,存储过程的调用。

二·触发器的语法

触发器 unknow system varible create_by 触发器是什么_主键

 【案例】新员工入职之后输出一句"欢迎来到中关村软件园

触发器 unknow system varible create_by 触发器是什么_触发器_02

 三·触发器的分类

1· 语句级触发器:语句级触发器对每个DML语句都触发一次,如果一条INSERT语句在TABLE表中插入500行,那么这个表上的语句级触发器只执行一次。表级别触发器(语句级触发器)的特征是就算执行多条sql语句也只会触发一次,简单来说不管影响多少行,都只会执行一次。
2· 行级触发器:行级触发器只会每条sql语句都会触发一次。实现行级触发器需要使用“FOR EACH ROW”关键字行级触发器对DML语句而言,只要有一条数据被影响就会触发一次。影响多少行,就触发多少。

这两个触发器的区别在于语句级触发器对每个DML语句执行一次,行级触发器对DML语句影响的每个行执行一次。(如果一条insert语句在一个表中插入500行, 那么这个表的语句级触发器只执行一次,而行级触发器要执行500次) 可以按字面意思理解:行级触发器针对行,语句级触发器针对语句(一个语句可以包含多行)。

四·模拟mysql中的id的自强属性auto increment

触发器 unknow system varible create_by 触发器是什么_存储过程_03