触发器与储存过程实验.doc

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

数据库原理及应用 实验报告 题 目: 触发器与储存过程实验 专 业: 计算机科学与技术 班 级: 1320544 学 号: 11 姓 名: 李俊翔 太原工业学院计算机工程系 2015年11 月28日 实验目的与要求 使学生加深对触发器和存储过程 二、实验内容 1、掌握触发器的使用。 2、掌握存储过程的创建、修改和删除;掌握存储过程的执行。update触发器,级联更新“选课”表种相应的记录信息。 ②利用Delete表,将“学生”表中被删除的记录存储到“学生备份”表中,以供日后的数据查询和分析。 2)存储过程的使用 ①在Student数据库中,建立一个存储过程,要求统计计算机系学生的人数,并将人数返回给用户。 ②在Student数据库中,建立一个存储过程,要求 统计成绩大于等于90分学生的人数; 统计成绩大于等于80分并且小于90分学生的人数,并将人数返回给用户。 三、解决方案 代码实现: 1)触发器的使用 ①在数据表“学生”中创建update触发器,级联更新“选课”表种相应的记录信息。 create trigger Student_update on Student for update as declare @bSno char(9),@aSno char(9) print使用update触发器级联更新SC表中相关的行-开始 select @bSno=Sno from deleted print更新前的学号:+@bSno select @aSno=Sno from inserted print更新后的学号:+@aSno update SC set Sno=@aSno where SC.Sno=@bSno print使用update触发器级联更新SC表中相关的行-结束 ②利用Delete表,将“学生”表中被删除的记录存储到“学生备份”表中,以供日后的数据查询和分析。 if exists(select* from dbo.sysobjects where id=object_id(N[dbo].[Student_back])and OBJECTPROPERTY(id,NIsUserTable)=1) drop table [dbo].[Student_back] go create table [dbo].[Student_back]( [Sno][char](9) not null, [Sname][char](3) not null, [Ssex][char](1) not null, [Sage][char](2) not null, [Sdept][int] null )on [primary] go 2)存储过程的使用 ①在Student数据库中,建立一个存储过程,要求统计计算机系学生的人数,并将人数返回给用户。 CREATE PROCEDURE PROC_Student05 @Sdept varchar(10),@num smallint output as select @num=count(*) from Student where Sdept=@Sdept GO declare @Sdept varchar(10),@n smallint set @Sdept=CS exec PROC_Student05 @Sdept,@n output print @n go ②在Student数据库中,建立一个存储过程,要求 统计成绩大于等于90分学生的人数; 统计成绩大于等于80分并且小于90分学生的人数,并将人数返回给用户。 CREATE PROCEDURE PROC_Student06 @n1 smallint output,@n2 smallint output as select @n1=count(*) from SC where Grade=90 select @n2=count(*) from SC where Grade=80 and Grade90 declare @n1 smallint,@n2 smallint exec PROC_Student06 @n1 output,@n2 output print convert(varchar(6),@n1) print convert(varchar(6),@n2) Go 实验结果 1) ① ② 2) ① ② 出现的问题及解决的方法 通过反复的看老师给的PPT,也通过自己的练习,终于完成了这次的实验。同样通

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档