创建带输出参数@sumGrade的存储过程proc_GetSum,根据输入的学号(作为输入形参@sNo)查询给定学号的学生的总分,输出总分
时间: 2024-05-12 08:13:04 浏览: 76
数据库管理与应用 8.2.3 创建带有输入、输出参数的存储过程.pdf
以下是创建带输出参数@sumGrade的存储过程proc_GetSum的SQL代码:
```
CREATE PROCEDURE proc_GetSum
@sNo VARCHAR(20), -- 输入参数:学号
@sumGrade FLOAT OUTPUT -- 输出参数:总分
AS
BEGIN
SET NOCOUNT ON;
SELECT @sumGrade = SUM(Grade) -- 计算总分并赋值给输出参数
FROM Score
WHERE Sno = @sNo;
END
```
解释:
- `CREATE PROCEDURE`:创建存储过程的语法。
- `@sNo VARCHAR(20)`:定义输入形参@sNo,数据类型为VARCHAR,长度为20。
- `@sumGrade FLOAT OUTPUT`:定义输出形参@sumGrade,数据类型为FLOAT。
- `SET NOCOUNT ON`:在存储过程执行过程中,禁止向客户端返回任何计数信息。
- `SELECT @sumGrade = SUM(Grade)`:使用SUM函数计算指定学号学生的总分,并将结果赋值给输出参数@sumGrade。
- `FROM Score WHERE Sno = @sNo`:在Score表中查询指定学号的所有成绩。
- `END`:结束存储过程的定义。
使用该存储过程可以按照以下方式调用:
```sql
DECLARE @sumGrade FLOAT;
EXEC proc_GetSum '20210001', @sumGrade OUTPUT;
SELECT @sumGrade;
```
其中,'20210001'为要查询的学号,@sumGrade为输出参数,EXEC语句会执行存储过程,并将结果赋值给输出参数@sumGrade。最后,SELECT语句显示该学生的总分。
阅读全文