触发器被执行的前提是要有相应的事件发生,这些事件主要是针对数据表而言的。在SQL语言中,引发事件的主要是DML和DDL语言,因此又有DML事件和DDL事件,以及DML触发器和DDL触发器之称。
(一)DML触发器
DML触发器是当前数据库服务器中发生数据操作语言(Data Manipulation Language)事件时执行的存储过程。DML事件包括在指定表或图中修改数据的 INSERT语句、UPDATE语句和 DELETE语句。DML触发器又分为After触发器和 Instead Of触发器。
1.After触发器
A f t e r触发器是在触发事件发生后才触发执行的触发器,也就是说,先执行 INSERT、UPDATE、DELETE语句,然后才执行After触发器。After触发器只适用于数据表,不适用于视图。
2.Instead Of触发器(www.xing528.com)
Instead Of触发器在触发事件发生之前执行,即先执行Instead Of触发器,然后执行INSERT、UPDATE、DELETE语句。Instead Of触发器既适用于数据表,也适用于视图。
DML触发器经常用于强制执行业务规则,防止恶意执行DML语句,保证数据的完整性。
(二)DDL触发器
DDL触发器是在响应数据定义语言(Data Definition Language)事件时执行的存储过程。DDL触发器是 SQL Server 2005版本之后才有的一种触发器类型。与常规触发器一样,DDL触发器将激发存储过程以响应事件。但与DML触发器不同的是,它不会为响应针对表或视图的 UPDATE、 INSERT或 DELETE语句而激发;相反,它会为响应多种DDL语句而激发。这些语句要是以 CREATE、ALTER和DROP开头的语句。DDL触发器可用于管理任务,如审核和控制数据库操作。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。