我们在使用存储过程当中,有时在统计数据的时候,需要查询某表中的数据,并且得到指定字段的具体值,这时就需要用到游标查询来遍历表数据
示例:
这里有一个表(demo),字段结构和数据如下:
idf         namef                websitef
----------- -------------------- -------------------------------------------
1           javawind             http://www.javawind.net
2           blog                 http://blog.javawind.net
3           csdn                 http://www.csdn.net
4           sun                  http://www.sun.com
下面我们通过游标查询来遍历这个表的数据,并且把字段值赋值给存储过程的变量
- DECLARE @namef varchar(50)
 - DECLARE @websitef varchar(50)
 - DECLARE rs CURSOR FOR -- LOCAL SCROLL FOR
 - Select namef,websitef From demo -- 这里写SQL查询语句 可以条件查询
 - OPEN rs
 - FETCH NEXT FROM rs INTO @namef,@websitef
 - WHILE @@FETCH_STATUS <> -1 -- =0
 - BEGIN
 - Print 'Name:' +@namef+ ' , WebSite:'+@websitef
 - Print '----------------------------'
 - Print ''
 - FETCH NEXT FROM rs INTO @namef,@websitef
 - END -- END @@FETCH_STATUS
 - CLOSE rs
 - DEALLOCATE rs
 
执行结果:
Name:javawind , WebSite:http://www.javawind.net
----------------------------
 
Name:blog , WebSite:http://blog.javawind.net
----------------------------
 
Name:csdn , WebSite:http://www.csdn.net
----------------------------
 
Name:sun , WebSite:http://www.sun.com
----------------------------
解析:
通过定义rs游标之后,FETCH NEXT FROM rs INTO @namef,@websitef,的意思就是 把当前游标行的数据值赋给对应的变量。
最后还需要关闭和释放游标,避免死循环。






 阿云: