Trigger是指数据库前一阶段处理时系统发生的事件。通过Trigger,可以在特定表上为单个事件在SQL Server内部添加限制或业务规则。
1. Trigger的分类
Trigger可分为DML Trigger和DDL Trigger两类:
DML Trigger,即数据操作语言触发器,是指对基本表的INSERT、UPDATE和DELETE操作自动执行某种逻辑操作或提示,确保数据完整性。DML Trigger最多允许16个Trigger作用于一张表。
DDL Trigger,即数据定义语言触发器,是指当连接到服务器时执行CREATE、ALTER和DROP等语句执行的逻辑操作控制,例如计划重新生成索引和更新记录缓存。DDL Trigger最多允许12个Trigger作用于一个库。
2. 触发器的定义原则
应该根据以下原则定义Trigger:
1) 减少复杂性 – 使用Trigger时应避免使用循环及递归语句,以及过多复杂的代码逻辑。
2) 不影响事务处理 – 由于Trigger会在其它事务处理之前执行,因此不应该增加任何系统资源的负荷。
3) 尽量减少错误 – 尽量避免代码错误和点击错误导致Trigger出现异常。
3. 触发器的优缺点
优点:
1) 确保数据完整性 – 使用Trigger可以确保数据符合业务逻辑和规则,并且是完整无误的。
2) 提高系统灵活性 – 用户可以自定义该系统执行的事件,并快速实现新的功能。
缺点:
1) 排除人为错误 – 如果用户或程序有误,则无法避免错误发生。
2) 增加统计负担 – Trigger处理数据所需的系统资源比直接执行操作高得多。
综上所述,虽然Trigger可能存在一些不足之处,但它仍然是SQL Server中一个强大的工具,可以帮助数据管理员更好地控制和管理数据库。