一個簡單的例子,想測試下,但好像不能更新email,不知道問題在哪裏? 
declare my_cur CURSOR  for select email from tbl_user
     open my_cur
     while @@fetch_status=0
     begin 
        update tbl_user set email='test' where current of my_cur
        fetch next from my_cur 
     end

解决方案 »

  1.   

    很少使用CURSOR 
    友情幫頂
      

  2.   

    open my_cur
    以下加上fetch next from my_cur
      

  3.   

    DECLARE My_Cur CURSOR SCROLL DYNAMIC
    FOR 
    SELECT Email FROM MyUser
    OPEN My_Cur
    FETCH next FROM My_Cur
    WHILE (@@FETCH_STATUS=0)
    BEGIN
      UPDATE MyUser SET Email='Just For Test' WHERE CURRENT OF My_Cur
      FETCH next FROM My_Cur
    END
    DEALLOCATE My_Cur
      

  4.   

    打开游标时,游标会自动地定位在记录集中的第一条记录上.不用fetch next from my_cur
      

  5.   

    DECLARE My_Cur CURSOR SCROLL DYNAMIC
    FOR 
    SELECT Email FROM MyUser
    OPEN My_Cur
    FETCH next FROM My_Cur
    WHILE (@@FETCH_STATUS=0)
    BEGIN
      UPDATE MyUser SET Email='Just For Test' WHERE CURRENT OF My_Cur
      FETCH next FROM My_Cur
    END
    DEALLOCATE My_Cur
      

  6.   

    可更新游标加上for update
    declare my_cur CURSOR  for select email from tbl_user for update