SQL触发器( 二 )

    DML( 数据操纵语言 Data Manipulation Language)触发器:是指触发器在资料库中发生DML事件时将启用 。DML事件即指在表或视图中修改数据的insert、update、delete语句 。a、在SQL SERVER 2008中 , DML触发器的实现使用两个逻辑表DELETED和INSERTED 。这两个表是建立在资料库伺服器的记忆体中 , 我们只有只读的许可权 。DELETED和INSERED表的结构和触发器所在的数据表的结构是一样的 。当触发器执行完成后 , 它们也就会被自动删除:INSERED表用于存放你在操件insert、update、delete语句后 , 更新的记录 。比如你插入一条数据 , 那幺就会把这条记录插入到INSERTED表:DELETED表用于存放你在操作 insert、update、delete语句前 , 你创建触发器表中资料库 。b、触发器可通过资料库中的相关表实现级联更改 , 可以强制比用CHECK约束定义的约束更为複杂的约束 。与 CHECK 约束不同 , 触发器可以引用其它表中的列 , 例如触发器可以使用另一个表中的 SELECT 比较插入或更新的数据 , 以及执行其它操作 。触发器也可以根据数据修改前后的表状态 , 再行採取对策 。一个表中的多个同类触发器(INSERT、UPDATE 或 DELETE)允许採取多个不同的对策以回响同一个修改语句 。c、与此同时 , 虽然触发器功能强大 , 轻鬆可靠地实现许多複杂的功能 , 为什幺又要慎用?过多触发器会造成资料库及应用程式的维护困难 , 同时对触发器过分的依赖 , 势必影响资料库的结构 , 同时增加了维护的複杂程式 。
    DDL(数据定义语言 Data Definition Language)触发器:是指当伺服器或资料库中发生(DDL事件时将启用 。DDL事件即指在表或索引中的create、alter、drop语句也 。
    登入触发器:是指当用户登录SQL SERVER实例建立会话时触发(不支持SQL Server 2000 ) 。