当前位置:首页 > 数据库实验1-6参考答案
存储过程代码:
CREATE PROC STUDENT_GRADE2 @DEPT CHAR(20) AS
SELECT STUDENT.SNO,SNAME,CNAME,GRADE FROM STUDENT,SC,COURSE WHERE STUDENT.SNO=SC.SNO
AND SC.CNO=COURSE.CNO AND SDEPT=@DEPT
ORDER BY STUDENT.SNO ASC
执行存储过程代码:EXEC STUDENT_GRADE2 '信息系'
(3)建立存储过程student_Grade3,功能是根据参数提供的学生的姓名和课程名,查询该学生相应的课程成绩,若存在不为空的成绩,则返回参数值为成绩值,否则返回-1。
存储过程代码:
CREATE PROC STUDENT_GRADE3 @STUDENT_NAME CHAR(7), @COURSE_NAME CHAR(50), @X SMALLINT OUTPUT AS
SELECT @x=grade FROM STUDENT,SC,COURSE WHERE STUDENT.SNO=SC.SNO AND SC.CNO=COURSE.CNO AND SNAME=@STUDENT_NAME AND CNAME=@COURSE_NAME IF(@X IS NOT NULL) RETURN @x ELSE
SET @x=-1 RETURN @x
执行存储过程代码: DECLARE @X SMALLINT
EXEC STUDENT_GRADE3 '李勇','VB',@X OUTPUT PRINT @X 结果输出:87
DECLARE @X SMALLINT
EXEC STUDENT_GRADE3 '李勇','计算机导论',@X OUTPUT PRINT @X 结果输出:-1
25
(4)建立存储过程check_Xk,功能是根据提供的参数学号和课程号,完成选课记录的插入功能。要求如下:
? 首先检查该课程选课人数是否已满(可自己根据表中数据的情况定义一个限
定值),若满,则返回一个0;若不满,继续检查该学生是否已经选满3门课程,若满,则返回-1,否则将选课记录插入到SC表中,并返回1。 存储过程代码:
create procedure check_xk @sno char(10),@cno char(10) as
if (select count(*) from sc where cno=@cno)>=5 return 0 else begin
if (select count(*) from sc where sno=@sno)>=3 return -1 else begin
insert into sc(sno,cno) values(@sno,@cno) return 1 end end
执行存储过程代码: declare @i int
exec @i=check_xk '9531103','C03' print @i
四、实验小结
五、评阅成绩
实验预习20% 实验过程20% 实验结果30% 实验报告30% 总成绩
26
共分享92篇相关文档