是不是你的运行条件不满足了?比如select语句没有返回纪录?

解决方案 »

  1.   

    是不是游标用完后没有关闭?这样第二次再运行同样的SQL语句时,就会出错,这样肯定没有数据出来。
      

  2.   

    游标程序是:
    declare cursor2 cursor
    for select 货物,规格,"销量"=发货数量*发货件数 from toubao where 月份=1 order by 货物,规格
    open cursor2
    declare @huowu nvarchar (255),@guige nvarchar (255),@xiaoliang float (8)while @@fetch_status =0
    begin
     fetch next from cursor2 into @huowu,@guige,@xiaoliang
     update 基本信息表
        set 基本信息表.当月件数= 基本信息表.当月件数+ @xiaoliang  from 基本信息表 where 基本信息表.存货= @huowu and 基本信息表.规格= @guige 
     end   
    close cursor2
    deallocate cursor2
    go
    第一次运行可以,但是在第一次运行后再运行一次,系统给的信息是:"命令已经成功运行“,但在表中的数据就是没有反应。在这种情况下,把游标的名字换成CURSOR3后还是运行不成。
      

  3.   

    declare cursor2 cursor
    for select 货物,规格,"销量"=发货数量*发货件数 from toubao where 月份=1 order by 货物,规格
    open cursor2
    declare @huowu nvarchar (255),@guige nvarchar (255),@xiaoliang float (8)while @@fetch_status =0
    begin
     fetch next from cursor2 into @huowu,@guige,@xiaoliang
     update 基本信息表
        set 基本信息表.当月件数= 基本信息表.当月件数+ @xiaoliang  from 基本信息表 where 基本信息表.存货= @huowu and 基本信息表.规格= @guige 
          //------------------------------------------
          fetch next from cursor2 into @huowu,@guige,@xiaoliang
     end   
    close cursor2
    deallocate cursor2
    go
      

  4.   

    declare cursor2 cursor
    for select 货物,规格,"销量"=发货数量*发货件数 from toubao where 月份=1 order by 货物,规格
    open cursor2
    fetch cursor2 into @huowu, @guige, @xiaoliang
    if @@fetch_status <> 0
    begin
      close cursor2
      deallocate cursor2
      return 
    end
    declare @huowu nvarchar (255),@guige nvarchar (255),@xiaoliang float (8)while @@fetch_status =0
    begin
     update 基本信息表
        set 基本信息表.当月件数= 基本信息表.当月件数+ @xiaoliang  from 基本信息表 where 基本信息表.存货= @huowu and 基本信息表.规格= @guige 
     fetch next from cursor2 into @huowu,@guige,@xiaoliang
     end   
    close cursor2
    deallocate cursor2
    go
      

  5.   

    declare cursor2 cursor
    for select 货物,规格,"销量"=发货数量*发货件数 from toubao where 月份=1 order by 货物,规格
    open cursor2
    declare @huowu nvarchar (255),@guige nvarchar (255),@xiaoliang float (8)
    fetch next from cursor2 into @huowu,@guige,@xiaoliangwhile @@fetch_status =0
    begin
     update 基本信息表
        set 基本信息表.当月件数= 基本信息表.当月件数+ @xiaoliang  from 基本信息表 where 基本信息表.存货= @huowu and 基本信息表.规格= @guige
     fetch next from cursor2 into @huowu,@guige,@xiaoliang    
    end   
    close cursor2
    deallocate cursor2
    go
      

  6.   

    谢谢各位大虾。
    FJFZTV 的把DECLARE语句向前放一下可以运行
    基本同XEQTR1982的一样