码迷,mamicode.com
首页 > 数据库 > 详细

SQL——使用游标进行遍历

时间:2015-03-14 23:18:37      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:sql   cursor   



         前两天一个同事大叔问了这样一个问题,他要对表做个类似foreach的效果,问我怎么搞,我想了想,就拿游标回答他,当时其实也没用过数据库中的游标,但是以前用过ADO里面的,感觉应该差不多。


        今天闲下来,百度下,做了个关于游标的小DEMO:



            首先,让我们先来建张测试表:


                

USE LoadTest2010

CREATE TABLE testCursor /*创建测试表*/
(

	id INT,
	name VARCHAR(50)

)

--插入测试数据
INSERT INTO testCursor VALUES(1,'lhc')
INSERT INTO testCursor VALUES(2,'jay')


        接着,我们使用游标对这张表进行一个循环的操作:


           

--首先定义临时存储数据的变量,以供游标移动时当作Temp用
DECLARE @id INT
DECLARE @name VARCHAR(50)

DECLARE cursorTest CURSOR FOR --定义游标
	SELECT * FROM testCursor  --定义使用游标的表

OPEN cursorTest  --打开游标


FETCH NEXT FROM cursorTest INTO @id,@name --将游标向下移动一行,获取的数据放入之前定义的变量中

WHILE @@FETCH_STATUS=0 --判断是否成功获取数据

BEGIN 
	UPDATE testCursor SET name=name+'1'
	WHERE id=@id   --这里进行相应的处理,可以根据需要填入SQL语句
	FETCH NEXT FROM cursorTest INTO @id,@name --将游标向下移动一行
END

--关闭游标
CLOSE cursorTest
DEALLOCATE cursorTest

      

          完成之后,执行一下:


                

             技术分享



        发现我们想要的循环效果出现了。。。。嘿嘿~~~













                       

SQL——使用游标进行遍历

标签:sql   cursor   

原文地址:http://blog.csdn.net/lhc1105/article/details/44263921

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!