SQL实验五

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

洛阳理工学院实验报告系别计算机系班级B130506学号B13050619姓名梁乾昆课程名称数据库系统应用实验日期2015-10-23实验名称实验五存储过程和触发器成绩实验目的:1.掌握触发器创建和应用。2.掌握存储过程的创建和执行。实验条件:计算机一台SQLServer2008实验内容:在teaching数据库中实现下列操作,并记录相关的语句:1.创建一个存储过程stuinfo,实现在student表中查询08级学生的学号,姓名,性别,出生日期4个字段,并调用该过程。ifexists(selectnamefromsysobjectswherename='stuinfo'andtype='p')dropprocedurestuinfogocreateprocedurestuinfoasselectstudentno,sname,sex,birthdayfromstudentwhereSUBSTRING(studentno,1,2)='08'Goexecstuinfo2.创建一个存储过程stuage,根据输入的学号计算学生的年龄。createprocedurestuage@studentNOnvarchar(10)ASselectsname,YEAR(GETDATE())-YEAR(birthday)asagefromstudentwherestudentno=@studentNOexecstuage@studentNO='08050101'3.创建一个存储过程class_members,依据student表中的学生人数更新class表的members(即班级人数)列的数据。执行该存储过程class_members。createprocedureclass_membersasupdateclasssetmembers=(selectCOUNT(classno)fromstudentwherestudent.classno=class.classno)execclass_members4.创建一个数据库触发器tea_delete,禁止删除teaching中的表,并执行该触发器。createtriggertea_deleteondatabaseafterdrop_tableasprint'禁止删除表'rollbackdroptableexpic5.在student表上创建insert触发器student_insert。当student表插入记录时触发。由该触发器更新class表的members列的数据。用插入语句触发student_insert触发器。createtriggerstudent_insertonstudentafterinsertasexecclass_membersinsertintostudent(studentno,sname,classno)values('08050119','lss','080501')6.在student表上创建delete触发器student_delete。当student表删除记录时触发。由该触发器更新class表的members列的数据。用删除语句触发student_delete触发器。createtriggerstudent_deleteonstudentafterdeleteasupdateclasssetmembers=(selectCOUNT(classno)fromstudentwherestudent.classno=class.classno)print'已更新class表的members列的数据'deletefromstudentwherestudentno='08050119'7.在student表上创建update触发器student_update。当classno列值修改时触发,由该触发器更新class表的members列的数据,可调用第3题的存储过程class_members。写一个update语句,触发student_update触发器。createtriggerstudent_updateonstudentafterupdateasifupdate(classno)beginexecclass_membersendupdatestudentsetclassno='080501'wheresname='李笑笑'实验总结:本次实验主要是掌握触发器创建和应用,以及掌握存储过程的创建和执行。在首次创建的时候出现了错误,需要删掉重新输入,感觉每次稍微出错一点就要删掉重新创建不是很好的方法,查找到了ifexists(selectnamefromsysobjectswherename='stuinfo'andtype='p')dropprocedurestuinfo,在创建之前先检查是否存在,若存在就删除。本次实验加深了对存储过程和触发器的理解,对以后学习帮助很大。

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功