一、触发器的定义
触发器是一种特殊类型的存储过程,在数据库服务器中发生事件时自动运行。 触发器是为了响应各种DML、DDL事件或建立会话而运行。
与存储过程的区别:运行方式不同,触发器不能由execute语句调用,只能通过用户执行相关SQL的时候自动触发;而存储过程则需要用户、程序等显式的调用。
二、触发器的作用
触发器的主要作用主要有以下几个方面:
- 自动触发,无须调用。
- 可用于一些关联表数据的更新。
- 可以跟踪状态,撤销违法操作,保证数据的准确性。
- 触发器是一种高级约束,可以定义比用CHECK 约束更为复杂的约束
三、触发器的优点
- 触发器是自动的。当对表中的数据做了任何修改之后立即被激活。
- 触发器可以通过数据库中的相关表进行层叠修改。
- 触发器可以强制限制。这些限制比用CHECK约束所定义的更复杂。与CHECK约束不同的是,触发器可以引用其他表中的列。
四、触发器的缺点
- 增加了系统的复杂性。
- 嵌套触发器容易出现死锁现象。
- 触发器并没有提升多少性能。
- 可移植性差。
- 占用服务器资源,给服务器造成压力。
- 复杂的触发器维护困难。