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--删除游标
平时的应用中还真的很少用游标,并不是游标效率低而不用
只是能用其他方法能实现的话,就不优先考虑采用游标;