Sql Server系列:触发器
触发器的一些常见用途:
◊ 强制参照完整性
◊ 常见审计跟踪(Audit Trails):这意味着写出的记录不仅跟踪大多数当前的数据,还包括对每个记录进行实际修改的历史数据。
◊ 创建与CHECK约束类似的功能:与CHECK约束不同,这种功能可以跨表、跨数据库甚至是跨服务器使用。
◊ 用自己的语句代替用户的操作语句:常用于启动复杂视图的插入操作。
1. 触发器的概念
触发器是一种特殊类型的存储过程,对特定事件作出响应。触发器有两种类型:数据定义语言触发器和数据操作语言触发器。
数据定义语言(Data Definition Language,DDL)触发器在用户以某些方式(CERATE、ALTER、DROP)对数据库结构进行修改时激活而作出响应。在对数据库结构的改变或历史进行极为严格的审计时才会使用DDL触发器。
数据操作语言(Data Manipulation Language,DML)触发器是一些附加在特定表或视图上的代码片段。与需要显示调用的存储过程不同,只要有附加触发器的事件在表中发生,触发器中的代码就好自动运行。实际上也不能显式调用触发器,唯一的做法是在指定的表中执行所需的操作。
触发器的类型:
◊ INSERT触发器
◊ DELETE触发器
◊ UPDATE触发器
◊ 以上任意类型的混合
2. 创建触发器
创建触发器语法:
CREATE TRIGGER [ schema_name . ]trigger_name ON { table | view } [ WITH <dml_trigger_option> [ ,...n ] ] { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] } [ WITH APPEND ] [ NOT FOR REPLICATION ] AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME <method specifier [ ; ] > } <dml_trigger_option> ::= [ ENCRYPTION ] [ EXECUTE AS Clause ] <method_specifier> ::= assembly_name.class_name.method_name
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。