关于存储过程中的cursor

dbdxyan 2003-11-23 11:23:44
两张表:学生(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
...全文
74 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
learnall 2003-11-23
  • 打赏
  • 举报
回复
这样试一试

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

WHILE @@FETCH_STATUS=0
BEGIN
UPDATE STUDENT SET SREALGRADE=(
SELECT T.TGRADE FROM STUTERM T,STUDENT S
WHERE T.TNAME=@SGRADE//提示:没有给参数
)
FETCH NEXT FROM student_cursor INTO @SGRADE
END
CLOSE student_cursor
DEALLOCATE student_cursor
GO
carper 2003-11-23
  • 打赏
  • 举报
回复
你的问题是啥??

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧