[SQL2005触发器学习]1、初识触发器

记得刚接触触发器是5年前的事了,那时候天天写触发器和存储过程,但是最近一段时间面试有些东西竟然忘记了。在此重新学习与认识,顺便学习下SQL2005的一些新特性。
1、触发器的概念
    触发器可以理解为是针对数据表(或数据库)的特殊的存储过程。当这个表发生了Insert,Update或者Delete操作时,会自动激活执行,可以处理各种复杂的操作。
    在SQL2005中,触发器有了新功能:在数据表或数据库发生Create、Alter或Drop操作时,也会自动激活执行了。

2、触发器的作用或用途
    a. 完成比约束更复杂的数据约束,保证数据的完整性.
    b. 检查做执行的SQL语句是否被允许.
    c. 当这个数据被修改了,如果有其他数据表数据需要相应改变的,修改其他数据表里的数据.
    d. 调用更多的存储过程(约束是不能调用存储过程的)
     f.  更改原本要执行的SQL语句 
    g. 防止数据表结构更改或数据表被删除(使用SQL2005的新功能 Create,Alter,Drop 触发器)
3、触发器的种类
    触发器共分为DML触发器和DDL触发器两大类。
    DML触发器是当数据库服务器中发生数据操作语言(Data Manipulation Language)事件时执行的存储过程。大概也就是数据库表发生Insert、Update、Delete操作时引发的触发器。DML触发器又包含 After触发器和 Instead 触发器。
    DDL触发器是在响应数据定义语言(Data Definition Language)事件时执行的存储过程。DDL触发器一般用于执行数据中的管理任务。如防止表结构被修改。
4、DML触发器的工作原理
    在SQL SERVER 2005里,为每个DML触发器都定义了两个特殊的表,一个是插入表(Inserted),一个是删除表(Deleted)。这两个表是建立在数据库服务器的内存中的,是由系统管理的逻辑表,不是真正存储在数据库中的物理表。用户对这两个表只有读取权限,没有修改权限。
    这两个表的结构与触发器所在的表的结构完全一样,当触发器的工作完成后,这两个表也将自动从内存中删除。
    插入表(Inserted)里存放的是 要插入的记录和要更新的记录(Update时)。
    删除表(Deleted)里存放的是   更新前的记录(Update时)和要删除的记录。

触发器动作 Inserted表 Deleted表
Insert 存放要插入的记录  
Update 存放要更新的记录 存放更新前的记录
Delete   存放要删除的记录
原文地址:https://www.cnblogs.com/heimirror/p/1998242.html