1、触发器触发器相关的概念触发器是一种特殊的存储过程,触发器基于表建立,可视作表的一部分。触发器实在数据发生更新时,自动触发。用于实现强制业务规则和数据完整性。触发器是用户对某一表中数据进行 update、insert 和 delete 操作时被自动触发的一段程序。触发器有助于强制引用完整性,以便在更新表中行时,保留表之间也定义的关系。1、创建触发器:为书库表创建一个触发器,用来禁止修改书库号:不能修改书库号:create trigger update_Lib_tron Libraryafter updateasif update(LibraryNo)beginraiserror(不能修改书库号,
2、16,2)rollbackend触发器验证:Select * from LibraryUpdate Library set LibraryNo=4 where LibraryNo=1Select * from Library(外键约束)2、创建触发器:为管理员表创建一个触发器,用来禁止修改管理员编号:不能修改管理员编号:create trigger update_Wor_tron Workerafter updateasif update(WorkerID)beginraiserror(不能修改管理员编号,16,2)rollbackendSelect * from WorkerUpdate W
3、orker set WorkerID=103 where WorkerID=104Select * from Worker3、创建触发器:为图书表创建一个触发器,用来禁止修改图书编号:不能修改图书编号:create trigger update_Boo_tron Bookafter updateasif update(BookID)beginraiserror(不能修改图书编号,16,2)rollbackend触发器验证:Select * from BookUpdate Book set BookID=1014 where BookID=1016Select * from Book4、创建触发
4、器:为学生表创建一个触发器,用来禁止修改学号:不能修改学号:create trigger update_Stu_tron Studentafter updateasif update(StudentID)beginraiserror(不能修改学号,16,2)rollbackend触发器验证:Select * from StudentUpdate Student set StudentID=1014 where StudentID=1016Select * from Student5、创建触发器:为借阅表创建一个触发器,用来禁止删除“未还”的记录:不能删除“未还”的记录:create trigg
5、er delete_Bor_tron Borrowinstead of deleteasif exists (select * from Borrow where State=未还)begin raiserror(不能删除“未还”的记录,16,2)rollbackend验证:select * from Borrowdelete from Borrow where BorrowNo=3select * from Borrow6、创建触发器:为借阅表创建一个触发器,当借阅表中数据被删除时,学生表中的相关数据也会被删除:当 Borrow 表中数据被删除时,Student 表中的相关数据也会被删除 :
6、create trigger delete_Bor_Stu_tron Borrowafter deleteasprint 当删除借阅表中记录时,学生表中的相关数据也被删除delete from Studentwhere StudentID in(select StudentID from deleted)触发器验证:select * from Studentdelete from Borrow where StudentID=2015012select * from Student7、创建触发器:为书籍表创建一个触发器,当书籍表中数据被删除时,删除的数据备份到另外一张表中:备份:select * into Book_backup from Book where 1=2create trigger Book_delete_backup_tron Bookafter deleteasif exists (select * from deleted)begininsert into Book_backup select * from deletedprint 删除数据在 Book_backup 中做备份end触发器验证:delete from Book where BookID=1011select * from Book_backup(外键约束)