触发器

定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。 

常见的触发器有三种:分别应用于Insert , Update , Delete 事件。 

比如:

Create Trigger truStudent 

On Student                         --在Student表中创建触发器 

for Update                          --为什么事件触发 

As                                        --事件触发后所要做的事情 

if Update(StudentID)            

begin 

 

Update BorrowRecord 

Set StudentID=i.StudentID 

From BorrowRecord br , Deleted   d ,Inserted i      --Deleted和Inserted临时表 

Where br.StudentID=d.StudentID 

end        

理解触发器里面的两个临时的表:Deleted , Inserted 。注意Deleted 与Inserted分别表示触发事件的表“旧的一条记录”和“新的一条记录”。 

一个数据库系统中有两个虚拟表用于存储在表中记录改动的信息,分别是: 

虚拟表Inserted                     虚拟表Deleted 

 

在表记录新增时     存放新增的记录                         不存储记录 

修改时           存放用来更新的新记录                   存放更新前的记录 

删除时           不存储记录                             存放被删除的记录 

 

一个Update 的过程可以看作为:生成新的记录到Inserted表,复制旧的记录到Deleted表,然后删除Student记录并写入新纪录。 

 

删除的触发器简单示例:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER sffs   --创建触发器名
   ON  ccc   --在哪个表上操作触发
   AFTER delete   --表明在删除后触发
AS 
BEGIN
SET NOCOUNT ON;
declare @ssg nvarchar(50)  --定义一个变量
select @ssg = ID from deleted
delete from ooo where cccID =@ssg
END
GO

posted @ 2012-03-26 15:29  憶言  阅读(148)  评论(0编辑  收藏  举报