首页 新闻 会员 周边 捐助

sql中游标只执行一次

0
悬赏园豆:50 [已关闭问题] 关闭于 2011-08-19 17:47

我想用游标循环从table表中查询的记录,然后insert到另一个表table2.插入时候要插入num条记录。这里用while进行了判断。可是游标只执行了一次,就不往下取下一条记录了.找了半天资料都没有解决!各位大神们 帮帮小弟 跪谢了!

declare @error int 
 declare @i int--临时变量

set @i=0
set @error=0 
BEGIN TRAN --申明事务
 --申明第一个游标 
declare order_cursor CURSOR FOR select id,num from table where type =1
 --打开游标 
open order_cursor 
DECLARE @tempid varchar(50),@tempnum int
 --开始循环游标变量
FETCH NEXT FROM order_cursor INTO @tempid,@tempnum

WHILE @@FETCH_STATUS = 0  begin 
  while @i<@tempnum
   begin
    insert into table2(ID,CreateTime) values (@tempid,getdate())
    set @i=@i+1
   end
  --下一条记录
  FETCH NEXT FROM order_cursor INTO @tempid,@tempnum
  set @error=@error+@@error   
 end

if @error=0
begin
  commit tran 
end
else
begin
  rollback tran 
end
CLOSE order_cursorDEALLOCATE order_cursor 
END

问题补充:

已经解决!循环里面应该 set @i=0

我从草原来的主页 我从草原来 | 初学一级 | 园豆:51
提问于:2011-08-19 16:47
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册