• MS SQL Server 2000 游标的使用方法


    *********************************************************************************
    *********************              游标的使用方法          *****************************
    ****************                                                                      ***********************
    ****************     整理BY--苏贵阳   2010年7月28日      ***********************
    *********************************************************************************     

    一、游标的作用:
         Transact-SQL 游标主要用在存储过程、触发器和 Transact-SQL 脚本中,它们使结果集的内容对其它    Transact-SQL 语句同样可用。

    二、游标的使用过程:
        
         1.声明游标变量包含游标返回的数据。
      
         2.使用declare cursor 语句把游标与一个select 语句相关联。
          如: declare CKMX_cursor cursor for
                  select CKMX_WLBH,CKMX_SL,CKMX_DJ,CKMX_BZ from #CKMX  

         3.使用open语句执行select语句生成游标。
          如:  open CKMX_cursor

         4.使用fetch into 语句提取单行,并把每列中的数据转移到指定的变量中。然后,其他SQL语句可以引用这些变量来访问已提取的数据值。
          如:fetch from CKMX_cursor into @CKMX_WLBH,@CKMX_SL,@CKMX_DJ,@CKMX_BZ
          要先定义使用到的变量:
              declare @CKMX_WLBH  varchar(20)--存放从临时表中查询出来的物料代码
              declare @CKMX_SL float         --存放从临时表中查询出来的物料数量
              declare @CKMX_DJ float         --存放从临时表中查询出来的物料单价
              declare @CKMX_BZ varchar(50)   --存放从临时表中查询出来的物料备注

         5.利用while循环来遍历游标中的内容
            
             例一: 
             while @@fetch_status=0
             begin
                ……
                可以使用已经赋值了的变量: @CKMX_WLBH,@CKMX_SL,@CKMX_DJ,@CKMX_BZ

                fetch from CKMX_cursor into @CKMX_WLBH,@CKMX_SL,@CKMX_DJ,@CKMX_BZ    --如果没有此句,会导致死循环。
                ……
             end
       
             @@fetch_status 返回 fetch 语句执行的最后游标状态,而不是任何当前被打开的游标的状态。
             返回值:0:fetch语句执行成功;  -1:fetch语句执行失败,或者此行不在结果集中。
         
             例二:
                  declare employee_cursor cursor for
                       select lastname, firstname from northwind.dbo.employees
                  open employee_cursor
                  fetch next from employee_cursor
                  while @@fetch_status = 0
                  begin
                      fetch next from employee_cursor
                  end
                  close employee_cursor
                  deallocate employee_cursor

         6.结束游标:
                
                 关闭当前使用的游标:   close CKMX_cursor
      
                 处于关闭状态的游标,如果重新发出一个open 语句,则该游标结构仍可用于处理。

                 完全释放游标资源: deallocate CKMX_cursor
          

         7.其他
                 MS SQL SERVER 2000中支持 cursor 数据类型的变量。
                
                 定义并关联游标变量
      
                 方法一:         
                 declare @myvariable cursor     -- 定义游标变量

                 declare mycursor cursor for    -- 定义游标
                     select lastname from northwind.dbo.employees

                 set @myvariable = mycursor     -- 关联游标
                
                 方法二:
                 set @myvariable = cursor scroll keyset for
                                        select lastname from northwind.dbo.employees


          
         
     

    本文出自 “迷茫后的短暂停留” 博客,请务必保留此出处http://suguiyang.blog.51cto.com/1035725/416979

  • 相关阅读:
    #computer architecture#如何设计一个处理器4
    #computer architecture#如何设计一个处理器3
    #computer architecture#如何设计一个处理器2
    #computer architecture#指令集学习
    seq2seq聊天模型(三)—— attention 模型
    sequence_loss的解释
    seq2seq聊天模型(二)——Scheduled Sampling
    seq2seq聊天模型(一)
    rxjs与vue
    rxjs——subject和Observable的区别
  • 原文地址:https://www.cnblogs.com/chenbg2001/p/2307307.html
Copyright © 2020-2023  润新知