SQL2005新功能:[6]DDL触发器
除了对修改数据的数据操作语言语句(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。
2、创建 DDL 触发器下面为CREATE_TABLE事件创建DDL触发器,显示创建信息。
3、删除 DDL 触发器注意:因为 DDL 触发器不在架构范围内,所以不会在sys.objects目录视图中出现,无法使用 OBJECT_ID 函数来查询数据库中是否存在 DDL 触发器。必须使用相应的目录视图来查询架构范围以外的对象。创建时在DATABASE上创建,删除也需在DATABASE上删除。
4、修改DDL触发器修改DDL触发器使用ALTER TRIGGER语法。
5、禁用/启用DDL触发器禁用/启用DDL触发器使用DISABLE/ENABLE TRIGGER语法。
感谢阅读
1、感谢你把本经验阅读完,如果有写的不好的地方,请指出以便纠正,以免误人子弟。如果觉得本经验有用,浪费你几秒钟的时间在页面左下方点个赞。在页面顶部/经验底部投个票。