日期:2014-05-18  浏览次数:20396 次

建游标不会做,在线等,谢谢~~~~~~~~~~~~~~~~~~~~~
表一:学生情况信息表   XS
学号 姓名 专业名   性别   出生时间   总学分   备注
主键
表三 学生与课程表   XS_KC
表二:课程表   KC
课程号   课程名   开课学期   学时   学分
主键


学号   课程号   成绩   学分
主键   主键

创建游标
  创建游标MYCURSOR,查询结果集为所有学生的总学分,并定义变量@score将当前结果读取至@score变量中,用WHILE语句循环,若查找到:。分以一:的记录则删除(在WHERE子句中使角CURRENT   OF游标名,指明是当前游标指针所指向的记录。)若在30至40之间的记录,则增加20分,操作完成后关闭游标并删除。
注:CURRENT   OF关键字使用时游标定义中不出现READ-ONLY或FAST   FORWARD。

------解决方案--------------------
--游标的用法
DECLARE pivot_Cursor CURSOR FOR
select a from pivot
OPEN pivot_Cursor

FETCH NEXT FROM pivot_Cursor into @a
WHILE @@FETCH_STATUS = 0
BEGIN
……
FETCH NEXT FROM pivot_Cursor into @a
END

CLOSE pivot_Cursor
DEALLOCATE pivot_Cursor

------解决方案--------------------
DECLARE pivot_Cursor CURSOR FOR
select a,b from pivot--这是要用游标遍历的结果集
OPEN pivot_Cursor

FETCH NEXT FROM pivot_Cursor into @a,@b--这是得到第一条记录,将该记录的列赋给变量
WHILE @@FETCH_STATUS = 0--这是判断后面还有没有数据
BEGIN
……--这是在处理
FETCH NEXT FROM pivot_Cursor into @a--这是得到下一条记录
END

CLOSE pivot_Cursor
DEALLOCATE pivot_Cursor
------解决方案--------------------
最好不要用游标