SQL Server Trigger
语法
-- 表或视图的INSERT、UPDATE或DELETE语句的触发器(DML触发器) { CREATE | ALTER } TRIGGER [ schema_name . ]trigger_name -- schema_name: DML 触发器所属架构的名称,一般不使用 -- trigger_name: 触发器的名称。 一般由字母、数字、下划线构成,长度128字符以内 ON { table | view } -- table: 表触发器,填写数据库表名 -- view: 视图触发器,填写视图名 [ WITH <dml_trigger_option> [ ,...n ] ] -- dml_trigger_option: 触发器高级选项,例:ENCRYPTION,加密触发器语句 { FOR | AFTER | INSTEAD OF } -- FOR: 后触发,仅当触发 SQL 语句中指定的所有操作都已成功启动时,DML 触发器才触发。 所有引用级联操作和约束检查也必须在此触发器触发前成功启动。 -- AFTER: 与FOR同义,但无法对视图定义 AFTER 触发器 -- INSTEAD OF: 替代触发器,用来代替通常的触发动作,系统不是直接对表执行这些操作,而是把操作内容交给触发器,因为INSTEAD OF 触发器的动作要早于表的约束处理。每个INSERT、UPDATE 或 DELETE 语句只能有一个 INSTEAD OF 触发器 { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] } -- INSERT: 插入时触发 -- UPDATE: 更新时触发 -- DELETE: 删除时触发 [ WITH APPEND ] [ NOT FOR REPLICATION ] -- NOT FOR REPLICATION: 当复制进程更改触发器所涉及的表时,不要执行该触发器 AS -- 触发语句,触发器可以包含任意数量和类型的 Transact-SQL 语句ALTER TABLE tabla_name DISABLE TRIGGER trigger_name -- tabla_name: 数据库表名 -- trigger_name: 触发器名DROP TRIGGER trigger_name -- trigger_name: 触发器名
INSERTED 表和 DELETED 表


示例
用户表(User)
书籍信息(BookInfo)
订单(Order)


最后更新于