1. 什么是触发器
a) 触发器是在对表进行插入、更新或删除操作时自动执行的存储过程
b) 触发器通常用于强制业务规则
c) 触发器是一种高级约束,可以定义比用CHECK 约束更为复杂的约束
i. 可执行复杂的SQL语句(if/while/case)
ii. 可引用其它表中的列
d) 触发器定义在特定的表上,与表相关
e) 自动触发执行
f) 不能直接调用
g) 是一个事务(可回滚)
2. 触发器的类型
a) DELETE 触发器
b) INSERT 触发器
c) UPDATE 触发器
3. inserted 和deleted 表
a) 触发器触发时:
i. 系统自动在内存中创建deleted表或inserted表
ii. 只读,不允许修改;触发器执行完成后,自动删除
b) inserted 表
i. 临时保存了插入或更新后的记录行
ii. 可以从inserted表中检查插入的数据是否满足业务需求
iii. 如果不满足,则向用户报告错误消息,并回滚插入操作
c) deleted 表
i. 临时保存了删除或更新前的记录行
ii. 可以从deleted表中检查被删除的数据是否满足业务需求
iii. 如果不满足,则向用户报告错误消息,并回滚插入操作