Sql 游标操作

Declare @Oid int  
Declare @PriceTotal float

--定义游标
Declare cur    cursor for
Select Oid 
from orders 
where oid in (select oid from ochild where Ochild.MID = @ProductSN) 
    And Orders.PID = @SupplierSN
    And (Orders.LastDate >= @StartDate) 
    And (Orders.LastDate <= @EndDate)
--打开游标
open cur
--植入变量
fetch next from cur into @Oid 
while(@@fetch_status=0)--执行后的游标状态作为循环条件
begin
    Set @PriceTotal = 0
    Select @PriceTotal = sum( Ochild.fact * Ochild.num) from Ochild Where Ochild.Oid = @Oid
    --执行操作
    UPDATE    Orders
    SET      fact =  @PriceTotal
    Where Orders.Oid = @Oid
  
    --提前下一位信息
    fetch next from cur into @Oid
end
close cur--关闭游标
deallocate cur--删除游标

平时的应用中还真的很少用游标,并不是游标效率低而不用

只是能用其他方法能实现的话,就不优先考虑采用游标;

转载于:https://www.cnblogs.com/dgjack/archive/2012/06/07/2540562.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值