(一)游标模板
1.1简单游标:
--0.定义游标用的变量
declare @inqty numeric(18,8),@reqrate numeric(18,8),@workno int,@morderno varchar(50)
set @inqty=1000 --默认为制令净需求数量
set @morderno='10010001'
--1.定义游标
declare j_cur cursor for
select workno,reqrate from po_orderjob where morderno=@morderno
order by workno desc
--2.打开游标,向下取一条记录,赋值给对应变量
open j_cur
fetch next from j_cur into @workno,@reqrate
--判断没取完游标记录
while @@fetch_status = 0
begin --1
--游标处理代码段
if isnull(@reqrate,0) > 0 --工序成材率大于0
set @inqty = round(@inqty / @reqrate * 100.0,2)
else --/工序成材率小于0,当1算
set @reqrate=100
--select @inqty
update po_orderjob set inqty=@inqty where morderno=@morderno and workno=@workno
--2.1 再向下取一条记录,赋值给对应变量
fetch next from j_cur into @workno,@reqrate
end --1
--3.关闭游标
close j_cur
--4.删除游标
deallocate j_cur
备忘:
1)如果调用的存储过程中使用”游标”,则当前调用语句中使用的游标定义名称不能跟 调用过程中的游标名相同, 否则会出错!!!