(2版)数据库实验11 存储过程触发器及答案.docVIP

(2版)数据库实验11 存储过程触发器及答案.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验 一、实验目的及要求 本实验主要目的是: 理解存储过程的概念及类型,深刻理解存储过程的优点 掌握创建各种存储过程的方法掌握存储过程的方法 理解触发器的概念与类型 理解触发器的功能及工作原理 掌握创建、更改、删除触发器的方法 理解利用触发器维护数据完整性的方法 二、实验原理背景知识 { FOR | AFTER | INSTEAD OF } {[DELETE],[INSERT],[UPDATE]} AS SQL语句 三、实验内容及步骤 存储过程的创建和执行 (2)执行 答: @stuCount int output @stuCount (2)执行 答: @stucount output, @avgmark output,@pationpass output 执行结果: 课程号 人数 平均分 及格率 010101 65 70 0.692307692307692 (二)管理存储过程 查看存储过程代码 修改存储过程 删除存储过程 ?()触发器 1、Inserted表和Deleted表的使用 (1)创建下面的触发器,用于显示Inserted表和Deleted表中的内容。 (2)分别执行下面三个语句,查看每个语句的执行结果。 2、AFTER触发器 (1)创建一个学生选课统计表(选课数量,总学分)。 (2)创建触发器,当学生选课后自动跟新stu_credit表内容,将所选课程数加1,并在选课程总学分中增加新选的课程学分。 (3)分别执行下列三条语句并进行测试。 答:(1).sno sname courseCOUNT sumCredit 081220101 吴明 3 171 (2). 消息2627,级别14,状态1,第1 行 违反了PRIMARY KEY 约束PK_student_course。不能在对象dbo.student_course 中插入重复键。 语句已终止。 ?()触发器 1、创建触发器实现当修改学生表的平时成绩或期末考试成绩时自动计算总评成绩,按照2:8进行计算。 答student_course for insert 2、依次运行下列语句并进行验证。 答:sNO ccNO NormalMark ExamMark Mark 081220101 0312091006 NULL 90 88 sNO ccNO NormalMark ExamMark Mark 081220101 0312091006 80 90 88 四、实验create procedure c ( @sno char(10), @cnocount int output, @avgmark float output, @sumcredit int output) As begin select @cnocount=count(*),@avgmark=avg(mark),@sumcredit=sum(credit) From student_course sc,course_class cc ,student s where sc.sno=s.sno and cc.ccno=sc.ccno group by s.sNO,sname end 执行过程: Declare @ccount int Declare @smark float Declare @scredit int Exec c 081220101 , @ccount output, @smark output, @scredit output Select 081220101 as 学生号, @ccount as 选课门数, @smark as 平均分, @scredit as 所选学分 create trigger trig1 on student_course for insert ,update as declare @a int declare @b int select @a=(select SUM(credit) from course_class ) , @b=(select COUNT(*) from course_class cc ) from insert

文档评论(0)

hhuiws1482 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档