前触发器和后触发器简介(downmoon)
触发器是一种特殊的存储过程。当Insert Update 或者Delete 语句修改表中一个或者多个行时执行触发器。因为SQL Server 对特定表上的每一个指定操作调用一个触发器,所以可以使用触发器扩展SQL Sever 的内置完整性和数据操纵功能.
注意:不像Delete 语句,Trancate Table 语句不激活触发器,Write Text 语句也不激活触发器。
在SQL Sever 2000 中支持两种类型的触发器,前触发器(Instead Of Trigger)和后触发器(After Trigger)。前触发器就是在语句执行之前激活触发器,而后触发器就是在语句执行之后激活触发器。可以通过FOR 子句来选择使用何种触发器。
当为每一种操作创建一个触发器时,可以为所有三种操作创建一个触发器,并且使用相应的编程技术处理每一种操作。下面的示例在For 子句中列出了三种语句类型并,且使用条件语句将相应的跟踪值插入到CustUpdLog 表中。
Create Trigger TrackCustomerUpdates
On AppDta.dbo.Customer
For Insert , Update , Delete
As
Declare @InsertedCount Int
Declare @DeletedCount Int
Set @InsertedCount = ( Select Count ( * ) From inserted)
Set @DeletedCount = ( Select Count ( * ) From deleted)
If ( @InsertedCount > 0 ) Begin
Insert Into AppDta.dbo.CustUpdLo