针对教学数据库teaching,编写一个存储过程display_course,存储过程的功能是根据参数 传入的学号,利用游标机制,逐一显示该学生所选修的每一门课,要求显示学号、选修的课,要求显示学号,选修的课程 名称和成绩。
时间: 2024-03-07 10:50:14 浏览: 88
SQL教学课程-存储过程.ppt
好的,针对教学数据库teaching,编写一个存储过程display_course的SQL语句如下:
```
CREATE PROCEDURE display_course
@student_id VARCHAR(10)
AS
BEGIN
DECLARE @course_id VARCHAR(10)
DECLARE @course_name VARCHAR(50)
DECLARE @score FLOAT
DECLARE course_cursor CURSOR FOR
SELECT course_id, course_name, score
FROM student_course
WHERE student_id = @student_id
OPEN course_cursor
FETCH NEXT FROM course_cursor INTO @course_id, @course_name, @score
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @student_id + ' ' + @course_name + ' ' + CONVERT(VARCHAR(10), @score)
FETCH NEXT FROM course_cursor INTO @course_id, @course_name, @score
END
CLOSE course_cursor
DEALLOCATE course_cursor
END;
```
以上存储过程display_course的功能是根据传入的学号,利用游标机制逐一显示该学生所选修的每一门课程,包括学号、选修的课程名称和成绩。
调用存储过程的SQL语句如下:
```
EXEC display_course @student_id='S001';
```
执行以上SQL语句后,将会显示学号为S001的学生所选修的每一门课程、课程名称和成绩。
注意,游标是一种非常耗费资源的机制,如果不必要,尽量避免使用。
阅读全文