《【教学课件】第12章触发器.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第12章触发器.ppt(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第12章 触发器学习目标|理解触发器的作用,应能熟练创建、修改、删除触发器,在实际应用开发时能够灵活运用触发器完成业务规则以达到简化系统整体设计的目的。内容框架引例思考:当学生报名选修SQLServer实用技术课程时,WillNum应自动加1,如何处理?触发器的作用|在指定的表中数据发生变化时被调用以响应INSERT、UPDATE或DELETE事件|强制执行业务规则创建简单的触发器|【问题】创建一个触发器Test1,要求每当在Student表中修改数据时,向客户端显示一条“记录已修改!”的消息|SQL格式:CREATE TRIGGER trigger_nameOn tableWITH ENCR
2、YPTIONFOR|AFTER|INSTEAD OF INSERT UPDATE DELETEAS sql_statement|在Management Studio中查看触发器信息FOR/AFTER/INSTEAD OF的比较|【问题】将上例中触发器中的FOR UPDATE改为INSTEAD OF UPDATE,查看执行结果有何不同。|总结:z使用FOR/AFTER时,执行触发SQL语句(INSERT/UPDATE/DELETE):在触发SQL语句成功执行后,再执行触发器z使用INSTEAD OF时:执行触发器而不执行触发SQL语句练习11.创建一个触发器,要求每当在StuCou表中插入数据时
3、,向客户端显示一条“记录已添加!”的消息。2.创建一个触发器,要求每当用户插入student表的记录时,自动显示表中所有内容INSERTED表和DELETED表|系统为每个触发器都自动创建了INSERTED表和DELETED表|INSERTED表用于存放插入操作时的行;DELETED表用于存放删除操作时的行|这两个表的结构和被触发器作用的表的结构相同|用户不能对这两个表进行修改,但可以读取练习21.创建一个触发器,要求每当用户插入student表的记录后,自动显示Student表中插入的记录创建触发器|【问题】创建一个触发器SetWillNum,要求当插入、更新、删除StuCou表的选课记录时
4、,能更新Course表中相应的报名人数。z 说明:该触发器只适用于每次新增、删除一条记录的情况。创建批量数据触发器|思考:若有批量的数据新增、插入或删除,应该如何修改上例中的触发器?|处理多条记录的触发器简单、易维护,但每次都更新Course中每条记录的报名人数,效率不高IF UPDATE的应用【问题】创建一个触发器Test1,要求每当student表中修改pwd列的数据时,向客户端显示一条消息“密码已更改”的消息。|特点:只有当IF UPDATE指明的列发生修改时,才触发执行触发器。级联更新和删除:【练习】创建触发器,当修改student表中的学号字段后,自动修改stucou表中相应的学号。
5、(以前采用外键方式)【练习】在student表上创建触发器del_trg,当删除表中某一个学生的记录时,能自动删除掉该学生的所有成绩记录 重命名、删除触发器|重命名触发器SQL格式:sp_rename oldname,newname|删除触发器SQL格式:DROP TRIGGER trigger_namez说明:删除触发器所在的表时,SQL Server将会自动删除与该表相关的触发器管理触发器|禁用触发器 ALTER TABLE table_name DISABLE TRIGGER trigger_name|恢复使用触发器 ALTER TABLE table_name ENABLE TRIGGER trigger_name|显示数据库中有哪些触发器z请参考联机丛书“sysobjects系统表”使用注意事项总结|CREATE TRIGGER要在单个批处理中执行|ON table中的表格只能是一个|在同一条CREATE TRIGGER语句中,可以为多个事件(INSERT/DELETE/UPDATE定义相同的触发器操作)|可以为每个事件(INSERT/DELETE/UPDATE)创建多个触发器本章小结|理解:触发器的作用|创建、管理触发器的方法(重点)|如何设计触发器以简化系统设计(进一步的要求)|慎用触发器课后任务|独自完成第252页实训