declare xx cursor for select code from userinfo where len(code)  > '6'
open xx
Fetch Next FROM xx into @tablename WHILE @@FETCHSTATUS = 0
BEGIN
    Fetch Next FROM xx into @tablename 
END CLOSE xx
  DEALLOCATE xx

解决方案 »

  1.   

    declare xx cursor for select code from userinfo where len(code)  > '6'
    open xx
    Fetch Next FROM xx into @tablename WHILE @@FETCHSTATUS = 0
    BEGIN
        -- 这里做你要做的事
        -- ...
        -- ...
        --最后:
        Fetch Next FROM xx into @tablename 
    ENDCLOSE xx
    DEALLOCATE xx
      

  2.   

    请问下tablename变量是什么啊?
    还有@@FETCHSTATUS = 0是什么意思?这样循环指针能每循环一次都指向下一条记录吗
      

  3.   

    @@FETCH_STATUS
    返回被 FETCH 语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态0 FETCH 语句成功。 
    -1 FETCH 语句失败或此行不在结果集中。 
    -2 被提取的行不存在。 
    多看看帮助
      

  4.   

    declare xx cursor for select user from userinfo where len(code)  >6 ---取出符合条件的记录
    open xx
    Fetch Next FROM xx into @tablename ----取出第一条记录,把需要的字段记入变量 
     while  @@fetch_status = 0        ---取出记录成功       
    begin
     
     操作
    Fetch Next FROM xx into @tablename   -----取下一条记录
    end 
     CLOSE xx
      DEALLOCATE xx
    游标很低效,建议不用
      

  5.   

    已经解决  谢谢各位如果说游标效率很低  那么还有什么方法可以在循环中使指针不断next的方法呢