在一张表有多个触发器的时候,允许开发人员对AFTER触发器被激发的顺序进行控制。控制顺序需要用到sp_settriggerorder存储过程,并注意以下几个方面:
- 顺序只能控制第一个触发器和最后一个触发器,除此之外的中间触发器顺序无法控制。
- 第一个和最后一个触发器必须是两个不同的DML触发器。
- 控制顺序只针对相同的触发动作而言,也就是说AFTER update触发器,只能为UPDATE操作设置次序。
- INSTEAD OF触发器不能设置顺序。
- 如果ALTER TRIGGER语句更改了第一个或最后一个触发器,则会删除First或Last属性并将顺序值设置为None。必须使用sp_settriggerorder来重置顺序。
sp_settriggerorder (Transact-SQL)
sp_settriggerorder [ @triggername = ] '[ triggerschema. ] triggername'
, [ @order = ] 'value'
, [ @stmttype =