触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。
常见的触发器有三种:分别应用于Insert , Update , Delete 事件。
创建一个Update触发器:
Create Trigger truStudent
On Student if Update(StudentID) begin
Update BorrowRecordSet StudentID=i.StudentIDFrom BorrowRecord br , Deleted d,
Inserted i Where br.StudentID=d.StudentID
数据库系统中有两个虚拟表用于存储在表中记录改动的信息,分别是虚拟表Inserted虚拟表Deleted。一个Update 的过程可以看作为:生成新的记录到Inserted表,复制旧的记录到Deleted表,然后删除Student记录并写入新纪录。
创建一个Delete触发器:
Create trigger trdStudent On Student for Delete As Delete BorrowRecord From BorrowRecord br , Deleted d Where br.StudentID=d.StudentID
主要作用
一是完整性(防止编程遗漏)
二是简单
三是由数据库程序(比如Oracle)进行这项工作,而不是由你自己的程序做,效率高。