我想用游标循环从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