sql游标处理业务
批量更新数据
--声明变量
declare @caili varchar(50)
declare @goldfi varchar(50)
declare @memberoid varchar(50)
declare @gold decimal(18,8)
set @caili='68fa81c04b0a4bfb'
set @goldfi='46138c927a5a4'
--声明游标
declare item_cursor cursor scroll
for select MemberOID,sum(gold) as g from t_order where CreateTime >='2024-09-10' and CreateTime<='2024-09-11'and memberoid !='f90e7fc89f034d2595517e14e06026db' group by MemberOID having sum(1) >1
--打开游标
open item_cursor
--取数值进对应变量--into的变量数量必须与游标查询结果集的列数相同
fetch First from item_cursor into @memberoid,@gold
--提取成功,进行下一条数据的提取操作
while @@fetch_status=0
begin
update T_MemberGold set GoldCoin += @gold where memberoid = @memberoid and GoldOID=@caili
update T_MemberGold set GoldCoin -= @gold where memberoid = @memberoid and GoldOID=@goldfi
--取下一条记录 --移动游标
fetch next from item_cursor into @memberoid ,@gold
end
--关闭游标
close item_cursor
--释放游标
deallocate item_cursor

浙公网安备 33010602011771号