数据库题目: 建立存储过程,其功能是查询给定学号的学生的课程平均成绩(必做)、选修课程的门数和不及格

2024-12-14 21:05:50
推荐回答(2个)
回答1:

主要问题是存储过程主体缺少begin 和 end 语句,使得后面的测试语句也被编译成了存储过程的主体,从而造成了递归(存储过程调用自己)。
alter procedure 学生信息
@snum varchar(4),
@AvgScore int OUTPUT,
@CourseNum int OUTPUT,
@NotpassNum int OUTPUT
AS
BEGIN
Select @AvgScore = Avg(Score) From SC Where SC.snum = @snum
Select @CourseNum = Count(*) From SC Where SC.snum = @snum
Select @NotpassNum = Count(*) From SC Where SC.snum = @snum and score<60
END

另外,分号是SQL语句的结束符,不明白为什么有存储过程名后面会紧跟着一个分号。

回答2:

学生信息 和 3之间为什么有个分号?