您现在的位置: 万盛学电脑网 >> 程序编程 >> 数据库 >> mssql数据库 >> 正文

SQL触发器实例讲解

作者:佚名    责任编辑:admin    更新时间:2022-06-22

SQL触发器实例1 
定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。 
常见的触发器有三种:分别应用于Insert , Update , Delete 事件。 
我为什么要使用触发器?比如,这么两个表: 
复制代码代码如下:
Create Table Student( --学生表 
StudentID int primary key, --学号 
.... 

Create Table BorrowRecord( --学生借书记录表 
BorrowRecord int identity(1,1), --流水号 
StudentID int , --学号 
BorrowDate datetime, --借出时间 
ReturnDAte Datetime, --归还时间 
... 

用到的功能有
1.如果我更改了学生的学号,我希望他的借书记录仍然与这个学生相关(也就是同时更改借书记录表的学号); 
2.如果该学生已经毕业,我希望删除他的学号的同时,也删除它的借书记录。 
等等。 
这时候可以用到触发器。对于1,创建一个Update触发器: 
复制代码代码如下:
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分别表示触发事件的表“旧的一条记录”和“新的一条记录”。 
一个数据库系统中有两个虚拟表用于存储在表中记录改动的信息,分别是: