关于SQL中游标的使用

前言:不想写太多的理论文字,怕把大家给搞怕了,以至看完整篇文字还不知道游标是到底做什么的。所以现在我们就切入主题。

 

一、游标的使用
       使用游标的顺序: 声名游标、打开游标、读取数据、关闭游标、删除游标。
       声明游标
       最简单游标声明:DECLARE <游标名>CURSOR FOR<SELECT语句>;

       如:declare mycursor cursor For Select Age,Name From T_User
       其中select语句可以是简单查询,也可以是复杂的接连查询和嵌套查询
       打开游标
       非常简单,我们就打开刚才我们声明的游标mycursor
       OPEN mycursor      
       读取数据
        FETCH [ NEXT | PRIOR | FIRST | LAST] FROM { 游标名  | @游标变量名 } [ INTO @变量名 [,…] ]
        参数说明:
        NEXT   取下一行的数据,并把下一行作为当前行(递增)。由于打开游标后,行指针是指向该游标第1行之前,所以第一次执行FETCH NEXT操作将取得游标集中的第1行数据。NEXT为默认的游标提取选项。
        INTO @变量名[,…]  把提取操作的列数据放到局部变量中。
        列表中的各个变量从左到右与游标结果集中的相应列相关联。
        各变量的数据类型必须与相应的结果列的数据类型匹配或是结果列数据类型所支持的隐性转换。变量的数目必须与游标选择列表中的列的数目一致。       
        关闭游标
        CLOSE mycursor              
        删除游标
        DEALLOCATE mycursor  
  
二、给出具体的例子:

        Declare @Age int
        Declare @Name varchar(20)
        Declare myCursor Cursor For Select Age,Name From T_User 
        Open myCursor           --打开游标
        Fetch next From myCursor Into @Age,@Name     --开始抓第一条数据
       While @@fetch_status=0                                   --如果数据集里一直有数据 
           Begin
                Update T_User Set [Name]=@Name,Age=@Age
                Fetch Next From myCursor Into @Age,@Name    --跳到下一条数据
      End 
      Close myCursor       --关闭游标
      Deallocate myCursor   --删除游标

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值