游标程序是: 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后还是运行不成。
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
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
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
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后还是运行不成。
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
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
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
FJFZTV 的把DECLARE语句向前放一下可以运行
基本同XEQTR1982的一样