资源描述:
《存储过程与用户自定义函数(精).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.word可编辑.实验报告课程名称:数据库系统概论实验时间:2012.5.10学号:姓名:班级:一、实验题目:存储过程与用户自定义函数二、实验目的:1)掌握SQLServer中存储过程的使用方法。2)掌握SQLServer中用户自定义函数的使用方法。三、实验内容:(记录每个实验步骤内容、命令、截屏结果)(一存储过程1、对学生课程数据库,编写2个存储过程,分别完成下面功能: 1)统计某一门课的成绩分布情况,即按照各分数段统计人数,要求使用游标。createprocTotalByCnoNum(@cnovarchar(6asbegindeclare@num
2、1int,@num2int,@num3int,@num4int,@num5int,@gradeint,@cnamechar(20select@num1=0,@num2=0,@num3=0,@num4=0,@num5=0declarecur_cnocursorforselectgradefromscwherecno=@cnoopencur_cnofetchnextfromcur_cnointo@gradewhile@@fetch_status=0beginif@gradebetween90and100.专业.专注..word可编辑.set@num1=@n
3、um1+1elseif@gradebetween80and89set@num2=@num2+1elseif@gradebetween70and79set@num3=@num3+1elseif@gradebetween60and69set@num4=@num4+1elseset@num5=@num5+1fetchnextfromcur_cnointo@gradeendclosecur_cnodeallocatecur_cnoselect@cname=cnamefromcoursewherecno=@cnoprint'课程:'+@cnameprint'分数
4、段人数统计'print'=========================='print'90-100:'+convert(varchar(3,@num1print'80-89:'+convert(varchar(3,@num2print'70-79:'+convert(varchar(3,@num3print'60-69:'+convert(varchar(3,@num4print'不及格:'+convert(varchar(3,@num5print'=========================='end.专业.专注..word可编辑.执行以下
5、语句,显示课程号为3的成绩情况:execTotalByCnoNum'3'运行结果如下: 2)将学生选课成绩从百分制改为等级制(即A、B、C、D、E五级)。createprocChangeGradeasbegindeclare@djchar(1,@cnamechar(20,@cnochar(6,@snochar(9,@gradeintdeclarecur_cnocursorforselectgrade,cno,snofromscopencur_cnofetchnextfromcur_cnointo@grade,@cno,@snoprint'学号课程号等
6、级'print'=========================='while@@fetch_status=0beginif@gradebetween90and100set@dj='A'elseif@gradebetween80and89set@dj='B'.专业.专注..word可编辑.elseif@gradebetween70and79set@dj='C'elseif@gradebetween60and69set@dj='D'elseset@dj='E'print@sno+''+@cno+''+@djprint'-----------------
7、---------'fetchnextfromcur_cnointo@grade,@cno,@snoendprint'========================='closecur_cnodeallocatecur_cnoend执行:execChangeGrade运行结果为:2、对SPJ数据库,.专业.专注..word可编辑.1)创建一个存储过程ins_s_count,功能为根据提供的供应商号,供应商名,供应商所在地等信息,往S表中插入数据,并返回插入该记录之后,S表中的记录数。createprocins_s_count(@snochar(6,@
8、snamechar(20,@statuschar(10,@citychar(20asbegin