了解 DDL 触发器与 DML 触发器

DDL 触发器和 DML 触发器的用处不同。

DML 触发器在 INSERT、UPDATE 和 DELETE 语句上操作,并且有助于在表或视图中修改数据时强制业务规则,扩展数据完整性。

DDL 触发器在 CREATE、ALTER、DROP 和其他 DDL 语句上操作。它们用于执行管理任务,并强制影响数据库的业务规则。它们应用于数据库或服务器中某一类型的所有命令。

可以使用相似的 Transact-SQL 语法创建、修改和删除 DML 触发器和 DDL 触发器,它们还具有其他相似的行为。

与 DML 触发器相同,DDL 触发器可以运行在 Microsoft .NET Framework 中创建的以及在 SQL Server 中上载的程序集中打包的托管代码。有关详细信息,请参阅编程 CLR 触发器

与 DML 触发器相同,可以为同一个 Transact-SQL 语句创建多个 DDL 触发器。同时,DDL 触发器和激发它的语句运行在相同的事务中。可从触发器中回滚此事务。严重错误可能会导致整个事务自动回滚。从批处理中运行并显式包含 ROLLBACK TRANSACTION 语句的 DDL 触发器将取消整个批处理。有关详细信息,请参阅使用包含 COMMIT 或 ROLLBACK TRANSACTION 的 DML 触发器

与 DML 触发器相同,可以嵌套 DDL 触发器。有关详细信息,请参阅使用嵌套触发器

设计 DDL 触发器时,请从下列几个方面考虑它们与 DML 触发器的不同:

  • 只有在完成 Transact-SQL 语句后才运行 DDL 触发器。DDL 触发器无法作为 INSTEAD OF 触发器使用。
  • DDL 触发器不会创建插入的删除的表。可以使用 EVENTDATA 函数捕获有关激发 DDL 触发器的事件以及触发器导致的后续更改的信息。有关详细信息,请参阅使用 EVENTDATA 函数

请参阅

概念

了解 DDL 触发器

帮助和信息

获取 SQL Server 2005 帮助