CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

数据库 | Oracle | DB2 | SQL Server | MySQL | 商业智能 | BI | DBA | Sybase| SQL Server 2008

您现在的位置: IT专家网 > 数据库子站 > 数据库技巧

如何通过存储过程实现记录集的循环

作者: 松晨,  出处:IT专家网, 责任编辑: 李书琴, 
2008-08-17 08:46
  这个存储过程,它实现的方法是先把满足条件的记录集数据存放到一个表变量中,并且在这个表变量中增加一个FLAGID进行数据初始值为0的存放,然后去循环这个记录集,每循环一次,就把对应的FLAGID的值改成1,然后再根据循环来查找满足条件等于0的情况,可以看到,每循环一次,处理的记录集就会少一次,然后循环的往选好课程表里面插入,直到记录集的条数为0时停止循环,此时完成操作。

  【IT专家网独家】在应用程序开发的时候,我们经常可能会遇到下面的应用,我们会通过查询数据表的记录集,循环每一条记录,通过每一条的记录集对另一张表进行数据进行操作,如插入与更新,我们现在假设有一个这样的业务:老师为所在班级的学生选课,选的课程如有哲学、马克思主义政治经济学、毛泽东思想概论、邓小平理论这些课,现在操作主要如下:

  1) 先要查询这些还没有毕业的这些学生的名单,毕业过后的无法进行选课;

  2) 在批量的选取学生的同时,还需要添加对应的某一门课程;

  3) 点添加后选课结束。

  我们如果有SQL语句

  我们先建立三张表:


  create table Student --学生表
  (
  StudentId int not null, --学生ID
  StudentName VARCHAR2(30), --学生姓名
  StuentSN VARCHAR2(30), --学生学号
  StudentGradu int --学生是否毕业 0代表毕业,1代表未毕业
  )
  create table Subject --课程表
  (
  SubjectId int not null, --课程ID
  SubjectName VARCHAR2(20) --课程名称
  )
  create table SelSubject --选好课程表
  (
  SubjectId int not null, --课程ID
  StudentID int not null --学生ID
  )

  在实现上面的业务功能的时候,我们可能很多人一开始就在程序里面直接实现了,代码如下:

共4页。 1 2 3 4 :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅


    
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i