触发器

触发器是一种特殊的存储过程,常常用于实现强制业务规则和数据完整性。触发器由服务器自动执行,不能由应用程序调用
 
触发器分为两大类:
1、  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
2、  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’ ,‘ 公司信息表已发生变化
      

你可能感兴趣的:(触发器,职场,休闲)