实验六存储过程
一、实验目的
(1)掌握TSQL流控制语句。(2)掌握创建存储过程的方法。(3)掌握存储过程的执行方法。(4)掌握存储过程的管理和维护。
二、实验内容
1、创建简单存储过程(1)创建一个名为stu_pr的存储过程,该存储过程能查询出051班学生的所有资料,包括
学生的基本信息、学生的选课信息(含未选课同学的信息)。要求在创建存储过程前请判断该存储过程是否已创建,若已创建则先删除,并给出“已删除!”信息,否则就给出“不存在,可创建!”的信息。ifexistsselectfromsysobjectswhere
amestu_pra
dtypePbegi
dropprocedurestu_prpri
t已删除!e
delsepri
t不存在,可创建!
createprocedurestu_prasselectdisti
ctfromStude
ts
leftjoi
SCo
sS
oSCS
oleftjoi
Courseco
cC
oscC
owhereClass
o051
f执行:execstu_pr
2、创建带参数的存储过程(1)创建一个名为stu_proc1的存储过程,查询某系、某姓名的学生的学号、姓名、年龄,
选修课程名、成绩。系名和姓名在调用该存储过程时输入,其默认值分别为“”与“林”。执行该存储过程,用多种参数加以测试。ifexistsselectfromsysobjectswhere
amestu_proc1a
dtypePbegi
dropprocedurestu_proc1pri
t已删除!e
delsepri
t不存在,可创建!
fcreateprocedurestu_proc1sdeptvarchar10s
amevarchar10林as
selectS
amesS
oYEARgetdateYEARBirthAgeC
ameGradefromStude
tsCoursecSCwheresS
oscS
oa
dcC
oscC
o
a
dsS
amelikes
amea
dsSdeptlikesdept
执行:①、execstu_proc1
②、execstu_proc1sdepts
ame林
f(2)创建一个名为Stude
t_sc的存储过程,可查询出某段学号的同学的学号、姓名、总成绩。(学号起始号与终止号在调用时输入,可设默认值)。执行该存储过程。ifexistsselect
amefromsysobjectswhere
ameStude
t_sca
dtypeP
dropprocedureStude
t_scgocreateprocedureStude
t_sc
s
o_begi
varchar1020110001s
o_e
dvarchar1020110103as
selectsS
oS
ameSUMgradetotal_gradefromStude
tsSCwheresS
oscS
oa
dsS
obetwee
s
o_begi
a
ds
o_e
dgroupbysS
oS
ame
执行:execStude
t_sc
f3、创建带输出参数的存储过程(1)创建一个名为Course_sum的存储过程,可查询某门课程考试的总成绩。
总成绩可以输出,以便进一步调用。ifexistsselect
amefromsysobjectswhere
ameCourse_suma
dtypePdropprocedureCourse_sum
createprocedureCourse_sumc
amevarchar10asselectSUMgradetotal_gradeCOUNTs
os
ofromCoursecSCwherecC
oscC
oa
dC
amelikec
ame
f执行:execCourse_sum高数
(2)创建一执行该存储过程的批处理,要求当总成绩小于100时,显示信息为:“XX课程r