你如何优化表的多个触发器?

Bri*_*ang 5 sql t-sql triggers sql-server-2005

我在桌子上有几个触发器,我想保持分离,并希望对它们进行优化.

我可以只有一个触发器并在那里执行逻辑,但我想知道是否有一种更简单/逻辑的方法来实现以预定义的顺序进行此操作?

Sco*_*ols 6

使用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';