3.创建完后调用该存储过程SQL语句创建一个存储过程ProcAvg,查询指定班级指定课程的平均分。班级号和课程名称由输入参数给定,计算出的平均分通过输出参数返回。若该存储过程已存在,则删除后重建。创建完后请调用该存储过程。
时间: 2023-07-16 19:15:54 浏览: 99
以下是创建存储过程ProcAvg的SQL语句:
```
IF OBJECT_ID('ProcAvg', 'P') IS NOT NULL
DROP PROCEDURE ProcAvg;
GO
CREATE PROCEDURE ProcAvg
@class_id INT,
@course_name VARCHAR(50),
@avg_score FLOAT OUTPUT
AS
BEGIN
SELECT @avg_score = AVG(score)
FROM scores
WHERE class_id = @class_id AND course_name = @course_name;
END;
GO
```
可以看到,该存储过程有3个参数,其中2个为输入参数,1个为输出参数。@class_id表示班级号,@course_name表示课程名称,@avg_score表示平均分,通过OUTPUT修饰符表示该参数是输出参数。
下面是调用存储过程ProcAvg的SQL语句:
```
DECLARE @avg_score FLOAT;
EXEC ProcAvg @class_id = 1, @course_name = 'Math', @avg_score = @avg_score OUTPUT;
SELECT @avg_score;
```
首先定义一个@avg_score变量,用于接收存储过程的输出参数。然后调用存储过程ProcAvg,传入班级号和课程名称,并将@avg_score作为输出参数传入。最后通过SELECT语句输出@avg_score的值。
阅读全文