SQL2005新功能:[6]DDL触发器

2025-07-05 06:00:47

除了对修改数据的数据操作语言语句(INSERT、UPDATE 和 DELETE)所激发的触发器提供支持外,数据库引擎还包括一类新的触发器,由修改数据库对象的 DDL 语句(如以 CREATE、ALTER 或 DROP 开头的语句)激发。DDL 触发器可用于审核或控制对数据库架构的更改。

工具/原料

SQL2005,或更高版本(这里使用SQL2012)

什么情况下需要使用DDL触发器?

1、DDL 触发器可用于管理任务,例如审核和控制数据库操作。如果要执行以下操作,请使用 DDL 触发器:●要防止对数据库架构进行某些更改。●希望数据库中发生某种情况以响应数据库架构中的更改。●要记录数据库架构中的更改或事件。

触发器的作用域

1、在响应当前数据库或服务器上处理的 Transact-SQL 事件时,可以触发 DDL 触发器。触发器的作用域取决于事件。

设计DDL触发器

1、EVENTDATA函数返回有关服务器或数据库事件的信息。激发事件通知时将调用 EVENTDATA,并且结果返回到指定的 Service Broker。还可以在 DDL 或登录触发器正文的内部使用 EVENTDATA。

SQL2005新功能:[6]DDL触发器

2、创建 DDL 触发器下面为CREATE_TABLE事件创建DDL触发器,显示创建信息。

SQL2005新功能:[6]DDL触发器
SQL2005新功能:[6]DDL触发器

3、删除 DDL 触发器注意:因为 DDL 触发器不在架构范围内,所以不会在sys.objects目录视图中出现,无法使用 OBJECT_ID 函数来查询数据库中是否存在 DDL 触发器。必须使用相应的目录视图来查询架构范围以外的对象。创建时在DATABASE上创建,删除也需在DATABASE上删除。

SQL2005新功能:[6]DDL触发器
SQL2005新功能:[6]DDL触发器

4、修改DDL触发器修改DDL触发器使用ALTER TRIGGER语法。

5、禁用/启用DDL触发器禁用/启用DDL触发器使用DISABLE/ENABLE TRIGGER语法。

SQL2005新功能:[6]DDL触发器

感谢阅读

1、感谢你把本经验阅读完,如果有写的不好的地方,请指出以便纠正,以免误人子弟。如果觉得本经验有用,浪费你几秒钟的时间在页面左下方点个赞。在页面顶部/经验底部投个票。

SQL2005新功能:[6]DDL触发器
SQL2005新功能:[6]DDL触发器
SQL2005新功能:[6]DDL触发器
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢