DECLARE Dept_cur CURSOR FOR                                --定义游标
SELECT DeptID,CDeptName,Curk,Park FROM Dept where IsDelete=0
OPEN Dept_cur                                              --打开游标
FETCH Dept_cur INTO @DeptID,@CDeptName,@Curk,@Park
WHILE @@FETCH_STATUS = 0
BEGIN
                 --处理

FETCH  Dept_cur INTO @DeptID,@CDeptName,@Curk,@Park  --循环
END            
CLOSE Dept_cur                                              --关闭游标
DEALLOCATE Dept_cur                                         --销毁游标

解决方案 »

  1.   

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

  2.   

    首先感谢这位朋友,可是我问得是@@FETCH_STATUS的默认值是多少,使-1还是0??????
      

  3.   

    DECLARE Dept_cur CURSOR FOR                                --定义游标
    SELECT DeptID,CDeptName,Curk,Park FROM Dept where IsDelete=0
    OPEN Dept_cur                                              --打开游标
    FETCH Dept_cur INTO @DeptID,@CDeptName,@Curk,@Park
    WHILE @@FETCH_STATUS = 0SELECT DeptID,CDeptName,Curk,Park FROM Dept where IsDelete=0
    这里取出值 然后 OPEN Dept_cur                                              --打开游标
    FETCH Dept_cur INTO @DeptID,@CDeptName,@Curk,@Park 
    这里打开游标 并且游标开始指向数据 
    然后才是 WHILE @@FETCH_STATUS = 0这个判断啊 这样不就是说此时已经是0 FETCH 语句成功了么?  这个时候才是0是因为游标已经开始工作了 此时的值已经 不是初始值了吧??? 我是这么理解的. 请指点迷津啊  谢谢   还希望DX 能给详细解答下  万分感谢