关于存储过程中的cursor
两张表:学生(student)和术语(stuterm):学生的成绩sgrade用优、良、中、及格、不及格表示,术语表中tname:优、良、中、及格、不及格,tgrade对应:95,85,75,65,55。根据这两张表,导出学生的srealgrade.(以分数形式表示)
CREATE PROCEDURE dbo.GetStuGrade
@SGRADE INT,
@SREALGRADE INT
AS
DECLARE student_cursor CURSOR FOR
SELECT sgrade
FROM student
ORDER BY sid
OPEN student_cursor
FETCH NEXT FROM student_cursor
INTO @SGRADE
UPDATE STUDENT SET SREALGRADE=(
SELECT T.TGRADE FROM STUTERM T,STUDENT S
WHERE T.TNAME=@SGRADE//提示:没有给参数
)
CLOSE student_cursor
DEALLOCATEstudent_cursor
GO