在教学数据库teaching中编写一个存储过程display_course,其功能是根据参数传入学号,利用游标机制,逐一显示该学生所选修的每一门课程,要求显示学号、选修的课程名称和成绩。
时间: 2024-02-27 09:53:07 浏览: 158
好的,我理解了您的问题。以下是存储过程display_course的编写:
```
CREATE PROCEDURE display_course(@student_id INT)
AS
BEGIN
DECLARE @course_name VARCHAR(50)
DECLARE @grade INT
DECLARE course_cursor CURSOR FOR
SELECT course_name, grade
FROM course
WHERE student_id = @student_id
OPEN course_cursor
FETCH NEXT FROM course_cursor INTO @course_name, @grade
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT '学号:' + CAST(@student_id AS VARCHAR(10)) + ',课程名称:' + @course_name + ',成绩:' + CAST(@grade AS VARCHAR(10))
FETCH NEXT FROM course_cursor INTO @course_name, @grade
END
CLOSE course_cursor
DEALLOCATE course_cursor
END
```
该存储过程接收一个整型参数@student_id,以此作为条件从表course中查询该学生所选修的每一门课程及成绩。使用游标机制逐一打印每一门课程的学号、课程名称和成绩。最后关闭游标并释放资源。
阅读全文