习题十
一、教学目标
1、必须掌握(must):
触发器的作用、使用场合。
触发器的类型。
熟悉不允许使用触发器实现的功能。
用SSMS管理器创建简单的触发器,实现触发提示。
2、应该掌握(should):
创建触发器的T-SQL基本语法。常用函数的使用
触发器中特殊表的作用。
使用特殊表:创建简单的INSERT 、DELETE触发器,实现触发显示已插入或删除的记录,并带文字提示信息。
3、能够掌握(could):
使用特殊表:创建UPDATE触发器,实现触发显示已更新的记录,并带文字提示信息。
已定义级联的表在创建触发器上的限制。
Instead of 触发器的作用、使用场合。
创建Instead of触发器。
UPDATE()、COLUMNS_UPDTED()函数的使用。
参考资料:
电子教案:SQL第二部分(5)_触发器.ppt
教学参考书。
二、课堂案例练习
1、为案例项目的员工的删除建立触发器:只是给员工标上删除标志,并将员工信息移入员工历史数据表,测试触发器,并编程开发。
2、为案列项目的采购退货建立INSERT触发器:自动修改库存信息。
3、为案例项目的客户退货建立触发器:自动修改库存信息。
4、为各组扩展项目分析业务并建立相应的触发器
三、课外迁移练习
1、必须掌握(must):
1、什么是触发器?触发器与一般存储过程的主要区别是?
2、你是如何理解触发器的功能?
3、就数据表的操作而言,触发器有哪几种类型,分别在什么情况下引用触发?
4、使用触发器有哪些优点?触发器主要用于实施什么类型的数据完整性?
5、用企业管理器创建触发器,实现:在删除选课表的一条记录后,显示“删除成功!”信息。
6、请检测触发器是否能成功触发。
2、应该掌握(should):(请检测触发器是否能成功触发)
1、分别在什么操作情况下会影响到触发器特殊表?如何影响?
2、创建一个名为”Ins_kc”的触发器,实现:在插入选课表的一条学生记录后,触发触发器,显示该记录,并显示“…同学的信息成功插入!”
3、创建一个名为”Del_kc”的触发器,实现:在删除选课表的一条学生记录后,触发触发器,显示该记录,并显示“…同学的…课程成功删除!”
*4、创建一个名为”Del_stu”的触发器,实现:在删除学生表的一条学生记录后,触发触发器,使该学生的学生记录也从选课表中删除。并显示“删除成功!”
3、能够掌握(could):(请检测触发器是否能成功触发)
1、创建一个名为”Upd_stu”的触发器,实现:在更改学生表的学生资料后,触发触发器,显示更改前、更改后的学生记录和显示“更新数据库成功!”。
*2、创建一个名为”Upd_stu_upd”的触发器,实现: 在更改一个学生表的学号后,触发触发器,使成绩表中该学生的学号也相应的更改。
3、先设置学生表与选课表之间的关联(外健约束),再试创建一个名为”Del_kc”的触发器,实现:在删除选课表的一条学生记录后,触发触发器,显示该记录,并显示“…同学的…课程成功删除!”
请检测触发器是否能成功触发,出现什么问题,为什么?
4、设有如下关系表S、C、SC:
S(SNO,SNAME,SEX,SAGE,SCLASS) 主码是SNO
C(CNO, CNAME)主码是CNO
SC(SNO, CNO, GRADE)主码是SNO,CNO
其中SNO为学号,SNAME为姓名,SEX为性别,SAGE为年龄,SCLASS为班号,CNO是课程号,CNAME是课程名称,GRADE是成绩。
(1)创建一个名为”INS_SC”的触发器,实现:在插入SC表的一条成绩记录后,触发触发器,显示该记录,并显示“…同学的成绩成功插入!”
(2)创建一个名为”Del_SC”的触发器,实现:在删除SC表的一条学生成绩记录后,触发触发器,显示该记录,并显示“…同学的…课程成功删除!”
(3)创建一个名为”Del_S”的触发器,实现:在删除S表的一条学生记录后,触发触发器,使该学生的学生记录也从选课表中删除。并显示“删除成功!”
(4)创建一个名为”Upd_S”的触发器,实现:在更改一个S表的学号后,触发触发器,使SC表中该学生的学号也相应的更改。