我在桌子上有几个触发器,我想保持分离,并希望对它们进行优化.
我可以只有一个触发器并在那里执行逻辑,但我想知道是否有一种更简单/逻辑的方法来实现以预定义的顺序进行此操作?
使用sp_settriggerorder.您可以根据操作指定要触发的第一个和最后一个触发器.
MSDN上的sp_settriggerorder
从以上链接:
A.设置DML触发器的触发顺序
以下示例指定触发器uSalesOrderHeader是在Sales.SalesOrderHeader表上发生UPDATE操作后触发的第一个触发器.
USE AdventureWorks; GO sp_settriggerorder @triggername= 'Sales.uSalesOrderHeader', @order='First', @stmttype = 'UPDATE';
B.设置DDL触发器的触发顺序
以下示例指定触发器ddlDatabaseTriggerLog是在AdventureWorks数据库中发生ALTER_TABLE事件后触发的第一个触发器.
USE AdventureWorks; GO sp_settriggerorder @triggername= 'ddlDatabaseTriggerLog', @order='First', @stmttype = 'ALTER_TABLE', @namespace = 'DATABASE';