少了一句:Fetch Next from cur_Acc into @Acc_0,@Accdeclare @Acc_0 numicre
declare @Acc_  numicre
   Declare cur_Acc Cursor Local Scroll    --取帐户累计值
        for 
      Select  Acc_Total_0,Acc_Total from Account for update of Acc_Total_0
   Open cur_Acc                           
   Fetch Next from cur_Acc into @Acc_0,@Acc
   while @@fetch_status=0
    begin
    update  Account set  Acc_Total_0= @Acc  from Account WHERE CURRENT OF cur_Acc
    Fetch Next from cur_Acc into @Acc_0,@Acc
   end
   CLOSE cur_Acc
   DEALLOCATE cur_Acc

解决方案 »

  1.   

    你这样写只执行一次
    少了一句:Fetch Next from cur_Acc into @Acc_0,@Acc
      

  2.   

    在 
       Open cur_Acc 的时候
    查询分析器就停住了,不停的在查询,没有返回
      

  3.   

    declare @Acc_0 numicre
    declare @Acc_  numicre
       Declare cur_Acc Cursor Local Scroll    --取帐户累计值
            for 
          Select  Acc_Total_0,Acc_Total from Account for update of Acc_Total_0
       Open cur_Acc                           
       Fetch Next from cur_Acc into @Acc_0,@Acc
       while @@fetch_status=0
        begin
        update  Account set  Acc_Total_0= @Acc  from Account WHERE CURRENT OF cur_Acc
         Fetch Next from cur_Acc into @Acc_0,@Acc --这样就可以得到下一条记录的相应数据
        end
       CLOSE cur_Acc
       DEALLOCATE cur_Acc
      

  4.   

    现在还是不行
    declare @Acc_0 varchar(20)
    declare @Acc  varchar(20)
       Declare cur_Acc Cursor Local   --取帐户累计值
            for 
          Select  Acc_Total_0,Acc_Total from Account
            for 
          update of Acc_Total_0
       Open cur_Acc          
      select  @@Cursor_rows    --返回-1    
    select Cursor_Status('Local', 'cur_Acc')       --返回1    
       Fetch Next from cur_Acc into @Acc_0,@Acc---------查询分析器不停的查,没有返回
       while @@fetch_status=0
        begin
        update  Account set  Acc_Total_0= @Acc  from Account WHERE CURRENT OF cur_Acc
        Fetch Next from cur_Acc into @Acc_0,@Acc
       end
       CLOSE cur_Acc
       DEALLOCATE cur_Acc