网站大量收购独家精品文档,联系QQ:2885784924

实训十ku触发的创建和使用.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实训十ku触发的创建和使用

实训十 触发器的创建和使用 一、实训目的 理解触发器的作用; 了解触发器和一般存储过程的区别; 掌握创建、修改及删除触发器的方法; 理解触发器执行的过程。 二、实训步骤 (一) 简单触发器的创建和使用 在student数据库中t_course表创建一名为myt1的AFTER触发器,要求实现以下功能:当插入一条记录后提示“已插入一条新记录”,并验证此触发器。 create trigger myt1 on t_course for insert as print 已插入一条新记录--验证insert into t_course values (123,aaa,72,5) 已插入一条新记录 (1 行受影响)create trigger myt2 on t_course for delete as print 已删除一条记录--验证delete from t_course where c_number=123 已删除一条记录 (1 行受影响) create trigger myt3 on t_course for update as print 已修改一条记录--验证 update t_course set credit=11 where c_number=123 (1 行受影响)create trigger myt4 on t_course instead of delete as print 不能删除此表的记录!--验证 delete from t_course where c_number=123 (1 行受影响)drop trigger myt1,myt2,myt3,myt4 命令已成功完成。 (二) 较复杂的触发器的创建和使用 创建一个AFTER触发器,要求实现以下功能:在t_score表上创建一个插入更新类型的触发器scoreCheck,当在score字段中插入或修改考试分数后,触发该触发器,检查分数是否在0至100分之间。(参考教材P186的例10-3,运行后发现尽管分数不在0至100分之间,但还是能够插入和修改) CREATE TRIGGER TR_ScoreCheck ON T_SCORE FOR INSERT, UPDATE AS IF UPDATE(SCORE) PRINT AFTER触发器开始执行…… BEGIN DECLARE @ScoreValue real SELECT @ScoreValue=(SELECT SCORE FROM inserted) IF @ScoreValue100 OR @ScoreValue0 PRINT 输入的分数有误,请确认输入的考试分数! END 命令已成功完成。 --验证TR_ScoreCheck触发器的功能PRINT 在t_score中插入记录时触发器执行结果: PRINT INSERT INTO t_score VALUES(0554112,-35)UPDATE t_score SET score=-35 WHERE s_number=0554112 在t_score中修改记录时触发器执行结果: AFTER触发器开始执行…… 输入的分数有误,请确认输入的考试分数!AFTER触发器开始执行…… 输入的分数有误,请确认输入的考试分数! (1 行受影响)CREATE TRIGGER scoreCheck2 ON t_score FOR insert, update AS declare @ScoreValue as int select @ScoreValue =(select score from inserted) if @ScoreValue 0 or @ScoreValue 100 begin rollback transaction print 数据不正确不能插入或修改 end 验证上面创建的触发器,检查当输入的分数不在0到100之间,能否保存分数。此功能的实现是依赖代码段的黑体字标识的语句rollback transaction来实现的,其作用是回滚变动的数据。教材没有此语句。 根据教材第4章P68创建一个检查约束,实现上述2的功能。体会触发器与检查约束功能上的相似之处。 在student数据库中t_course表创建一名为twofield的AFTER触发器,要求实现以下功能:当在hours(学时)和credit(学分)字段插入或修改学时或学分后,触发该触发器,检查学时是否是大于0小于200的整数,并且学分是否是大于0小于10的实数,若不满足这两个条件,则不允

文档评论(0)

guf825 + 关注
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档