- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
情境3 项目数据库对象和数据的操作任务7、触发器的使用
知识目标
了解触发器的概念和分类;
掌握创建、执行、修改和删除触发器的方法;
掌握DML触发器的类型;
掌握触发器的禁用和启动。
技能目标
理解触发器的概念、功能和类型;
学会根据实际开发项目数据库中的触发器,以完成系统整体设计的目的。
工作情境
教务处的宋老师正忙于安排下学期的课程计划,使用学生成绩管理系统比较频繁。宋老师为防止发生数据录入错误,希望把一行数据插入表中后,某个业务规则能够立即执行;或者,删除一行数据后,应该立即把其他表中与该行数据相关的数据也删除掉;或者更新某个表中的一条数据记录后,能立即实现所有相关数据的必要更新;还有就是要保护系统中的数据表结构不能被更改与删除。为解决这些问题,一个很有效的方法就是使用触发器。
触发器是一种保证数据完整性的有效方法,易于激活,并且能够实现复杂的检查和操作,下面介绍触发器的应用。
工作任务——创建触发器
技术支持:
CREATE TRIGGER 触发器名
ON 表名或视图名
{FOR | AFTER | INSTEAD OF }
{INSERT[,] | UPDATE[,] | DELETE }
[WITH ENCRYPTION ]
AS
sql_statements
AFTER项,在触发T-SQL语句中,指定的所有操作都已成功执行时才被激发。
INSTEAD OF项,指定DML触发器是替代T-SQL语句执行的。其优先级别高于触发语句的操作。每个表或视图,对于每条INSERT、UPDATE、DELETE语句最多可定义一个INSTEAD OF触发器。
{ [ INSERT ] [,] [ UPDATE ] [,] [ DELETE ] }项,指定数据修改语句。
任务:创建一个添加记录后显示提示信息的触发器tr_information1,并添加一条用户 记录验证触发器执行。
任务扩展:创建一触发器tr_warn ,如果在Student表中添加或更改数据,则向客户端显示一条警告信息。
工作步骤:
制定工作计划:
各组在项目经理的组织下,分组进行资料查找、互相讨论。
实施工作计划:
每个组员都要提出自己的见解和工作计划:在这一过程中学生相互启发,相互学习,个人的知识欠缺将通过共同讨论,集思广益来弥补,经过大家讨论群策群力最终确定出建好的解决问题的方案。
沟通交流:
检查评估:
学生演示已完成的项目任务,分组进行检查,每组大致5分钟。
教师根据任务要求进行检查,对小组完成任务情况给予具体点评。
实验报告要有针对性地提供任务的完成示例和分析设计思路。
解决方案:
工作任务——查看触发器
1、用图形工具查看触发器
任务:查看触发器tr_delete的定义信息 。
任务:查看触发器tr_delete依赖关系。
工作步骤:
制定工作计划:
各组在项目经理的组织下,分组进行资料查找、互相讨论。
实施工作计划:
每个组员都要提出自己的见解和工作计划:在这一过程中学生相互启发,相互学习,个人的知识欠缺将通过共同讨论,集思广益来弥补,经过大家讨论群策群力最终确定出建好的解决问题的方案。
沟通交流:
检查评估:
学生演示已完成的项目任务,分组进行检查,每组大致5分钟。
教师根据任务要求进行检查,对小组完成任务情况给予具体点评。
实验报告要有针对性地提供任务的完成示例和分析设计思路。
解决方案:
工作任务——查看触发器
2、用代码编辑器查看触发器
技术支持:使用系统存储过程sp_help、sp_helptext和sp_depents分别查看触发器的不同信息。
sp_ help :显示触发器的所有者和创建时间
sp_ helptext:显示触发器的源代码
sp_depends:显示该触发器参考的对象清单
任务:查看触发器tr_information1一般信息
任务:查看触发器tr_information1定义正文信息
任务:查看触发器tr_information1依赖关系
工作任务——修改触发器
技术支持:语法格式如下。
ALTER TRIGGER 要修改的触发器名
ON 表名或视图名
[ WITH ENCRYPTION ]
( FOR | AFTER | INSTEAD OF )
{ [ DELETE ] [ , ] [ INSERT ] [ , ] [ UPDATE ] }
AS
sql_statements
任务:修改触发器tr_information1,当student表添加、删除、修改记录后显示“友情提示:Student表数据发生变化”提示信息。
任务扩展:修改在学生关系数据库中学生表定义的触发器tr_warn
文档评论(0)