欢迎来到天天文库
浏览记录
ID:58663359
大小:37.50 KB
页数:2页
时间:2020-10-15
《实验4-编写存储过程访问数据库.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、课程实验报告课程名称数据库系统概论班级实验日期2012.11.22姓名学号实验成绩实验名称实验4:编写存储过程访问数据库实验目的及要求1.熟悉使用存储过程来进行数据库应用程序的设计。实验环境操作系统:WindowsDBMS:SQLServer2005实验内容创建关系模式SCSC(snovarchar(10)主键,Student表的外键,cnovarchar(5)主键,Course表的外键,gradeint,newgradevarchar(1))一开始SC表中的前3列是有数据的,newgrade列全部是空的1.编写存储过程将学生选课成绩(百分制)
2、转换成等级制(即A、B、C、D、F),要求使用游标完成其中,A:90~100B:80~89C:70~70D:60~69F:0~592.执行该存储过程,使得newgrade列中为各等级。调试过程及实验结果总结刚开始做的时候,没有多少思路,就比这书上做的,后来出现了很多错误,execsql是在别的软件中所用到的,而在sql中不适用;在声明变量时,我没有带着@提示必须声明标量变量"@exgrade",后来经询问同学,必须要加@;执行循环的时候,不知道执行的条件后来经在网上找到答案,sql中有自带的全局变量@@FETCH_STATUS控制循环,直到表中
3、数据为空时结束;在程序完成后,出现sc对象不能识别,这个错误很难查找,不是程序的错误,查询sc时可以,经过询问同学,调试多次很难找出,最终把sql关闭了再重新打开就可以,感觉很奇怪,这也许是软件自身的原因。附录createprocedureexchangeasbegindeclare@exnewgradevarchar(1),@exsnovarchar(10),@excnovarchar(5),@exgradeintdeclareexcursorforselectsno,cno,gradefromscopenexfetchexinto@exsn
4、o,@excno,@exgradewhile(@@FETCH_STATUS=0)beginif@exgrade<60set@exnewgrade='E'elseif@exgrade<70set@exnewgrade='D'elseif@exgrade<80set@exnewgrade='C'elseif@exgrade<90set@exnewgrade='B'elseif@exgrade<100set@exnewgrade='A'updatescsetnewgrade=@exnewgradewheresno=@exsnoandcno=@excn
5、ofetchexinto@exsno,@excno,@exgradeendcloseexdeallocateexendexecuteexchangedropprocedureexchangeupdatescsetnewgrade=nullselect*fromsc
此文档下载收益归作者所有