触发器

触发器是一种特殊的存储过程,经常用于实现强制业务规则和数据完整性。触发器由服务器自动执行,不能由应用程序调用
 
触发器分为两大类:
一、  DML触发器
CREATE TRIGGER [schema-name.] trigger-name
ON { table | view}
[ WITH  [{encryption |  execute as clause}] ]
{ FOR | AFTER | INSEAD OF ]
{ INSERT, DELETE , UPDATE }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS sql-statement
二、  DDL触发器
CREATE TRIGGER trigger-name
ON { ALL SERVER | DATABASE }
[ WITH ENCRYPTION | EXECUTE AS Clause ]
{ FOR | AFTER } { event-type | event-group }
AS sql-statement
1)        ALL SERVER:指定触发器的做用域为当前服务器
2)        DATABASE:指定触发器的做用域为当前数据库
3)        WITH ENCRYPTION:对触发器的语句文本进行加密
4)        EXECUTE AS 指定用于执行该触发器的安全上下文
5)        AFTER:指定DML触发器仅在触发SQL语句中指定的全部操做都成功执行时才被激发
6)        INSTEAD OF:指定DML触发器是代替SQL语句执行的,所以其优先级高于触发语句的操做
7)        Event_type:执行后将致使激发DDL触发器的SQL语言事件的名称
8)        Event_group:预约义的SQL语言事件分组的名称
9)        WITH APPEND:指定应该再添加一个现有类型的触发器
10)     NOT FOR REPLICATION:指示当复制代理修改涉及触发器的表时,不该执行触发器
 
例一:建立一个触发器,当公司信息表发生变化时,则发送一封邮件到用户RED,发送邮件用系统存储过程xp_sendmail
       CREATE TRIGGER attention
       ON company
       FOR INSERT,DELETE,UPDATE
       AS
              Exec xp_sendmail ‘RED’ ,‘公司信息表已发生变化
相关文章
相关标签/搜索