创建一个带输出参数的存储过程proc_student3,用于显示指定学号的学生的各门课程的平均成绩。执行存储过程,返回学号为你本人的平均成绩
时间: 2024-02-27 11:53:01 浏览: 85
数据库管理与应用 8.2.3 创建带有输入、输出参数的存储过程.pdf
好的,这是一个比较典型的存储过程的实现。以下是存储过程的代码:
```sql
CREATE PROCEDURE proc_student3
@student_id INT,
@avg_score FLOAT OUTPUT
AS
BEGIN
SELECT @avg_score = AVG(score)
FROM scores
WHERE student_id = @student_id
GROUP BY student_id, course_id
END
```
以上代码创建了一个名为`proc_student3`的存储过程,它接受一个输入参数`@student_id`和一个输出参数`@avg_score`。存储过程会在`scores`表中查找指定学号的学生的各门课程的平均成绩,并将平均成绩赋值给输出参数`@avg_score`。
在执行存储过程之前,需要先声明并初始化输出参数`@avg_score`,然后调用存储过程并输出结果。以下是调用存储过程的代码:
```sql
DECLARE @avg_score FLOAT;
EXEC proc_student3 @student_id = 20210001, @avg_score = @avg_score OUTPUT;
SELECT @avg_score;
```
以上代码声明了一个名为`@avg_score`的变量,并将其初始化为`NULL`。然后调用存储过程`proc_student3`,将`@student_id`设置为`20210001`,`@avg_score`设置为`@avg_score OUTPUT`,即指定`@avg_score`为输出参数。最后通过`SELECT`语句输出存储过程返回的平均成绩。
请注意,这里的`@student_id = 20210001`是一个示例,你需要将其替换为你自己的学号。
阅读全文