SQL——使用游标进行遍历
前两天一个同事大叔问了这样一个问题,他要对表做个类似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
完成之后,执行一下:
发现我们想要的循环效果出现了。。。。嘿嘿~~~
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。