zoukankan      html  css  js  c++  java
  • 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

          

              完毕之后。运行一下:


                    

                



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













                           

  • 相关阅读:
    从rnn到lstm,再到seq2seq(一)
    tensorflow world language model
    sparse_tensor feed_dict的时候十分不方便。
    MAC OS X 的环境配置加载顺序
    MAC连接HHKB/其他外接键盘的时候禁用自带键盘的设置
    linux suspend的进程如何恢复?
    ubuntu16 升级 tmux 2.9
    C++ 统计运行时间之弱智方法
    shell之引号嵌套引号大全
    统一化命名
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/6800438.html
Copyright © 2011-2022 走看看