《图书管理系统触发器[汇编]》由会员分享,可在线阅读,更多相关《图书管理系统触发器[汇编](9页珍藏版)》请在金锄头文库上搜索。
1、触发器 触发器相关的概念 触发器是一种特殊的存储过程,触发器基于表建立,可视作表的一部分。触发 器实在数据发生更新时,自动触发。用于实现强制业务规则和数据完整性。 触发器是用户对某一表中数据进行update、 insert 和 delete 操作时被自动触发的 一段程序。触发器有助于强制引用完整性,以便在更新表中行时,保留表之间 也定义的关系。 1、创建触发器:为书库表创建一个触发器,用来禁止修改书库号: 不能修改书库号: create trigger update_Lib_tr on Library after update as if update(LibraryNo) begin rai
2、serror(不能修改书库号 ,16,2) rollback end 触发器验证: Select * from Library Update Library set LibraryNo=4 where LibraryNo=1 Select * from Library (外键约束) 2、创建触发器:为管理员表创建一个触发器,用来禁止修改管理员编号: 不能修改管理员编号: create trigger update_Wor_tr on Worker after update as if update(WorkerID) begin raiserror(不能修改管理员编号 ,16,2) rollb
3、ack end Select * from Worker Update Worker set WorkerID=103 where WorkerID=104 Select * from Worker 3、创建触发器:为图书表创建一个触发器,用来禁止修改图书编号: 不能修改图书编号: create trigger update_Boo_tr on Book after update as if update(BookID) begin raiserror(不能修改图书编号 ,16,2) rollback end 触发器验证: Select * from Book Update Book set
4、BookID=1014 where BookID=1016 Select * from Book 4、创建触发器:为学生表创建一个触发器,用来禁止修改学号: 不能修改学号: create trigger update_Stu_tr on Student after update as if update(StudentID) begin raiserror(不能修改学号 ,16,2) rollback end 触发器验证: Select * from Student Update Student set StudentID=1014 where StudentID=1016 Select *
5、from Student 5、创建触发器:为借阅表创建一个触发器,用来禁止删除“未还”的记录: 不能删除“未还”的记录: create trigger delete_Bor_tr on Borrow instead of delete as if exists (select * from Borrow where State= 未还) begin raiserror(不能删除“未还”的记录,16,2) rollback end 验证: select * from Borrow delete from Borrow where BorrowNo=3 select * from Borrow 6
6、、创建触发器:为借阅表创建一个触发器,当借阅表中数据被删除时,学生表 中的相关数据也会被删除: 当 Borrow 表中数据被删除时, Student 表中的相关数据也会被删除: create trigger delete_Bor_Stu_tr on Borrow after delete as print 当删除借阅表中记录时,学生表中的相关数据也被删除 delete from Student where StudentID in(select StudentID from deleted) 触发器验证: select * from Student delete from Borrow whe
7、re StudentID=2015012 select * from Student 7、创建触发器:为书籍表创建一个触发器,当书籍表中数据被删除时,删除的 数据备份到另外一张表中: 备份: select * into Book_backup from Book where 1=2 create trigger Book_delete_backup_tr on Book after delete as if exists (select * from deleted) begin insert into Book_backup select * from deleted print 删除数据在 Book_backup中做备份 end 触发器验证: delete from Book where BookID=1011 select * from Book_backup (外键约束)