Declare @Oid int Declare @PriceTotal float--定义游标Declare cur cursor forSelect 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 @Oidendclose cur--关闭游标deallocate cur--删除游标
平时的应用中还真的很少用游标,并不是游标效率低而不用
只是能用其他方法能实现的话,就不优先考虑采用游标;