在循环中使用事务的问题
zzd 2002-06-11 12:15:59 OPEN BaseInfo_cursor -- 打开游标,共2条记录
FETCH NEXT FROM BaseInfo_cursor INTO ... -- 取字段值
WHILE @@FETCH_STATUS = 0 -- 取游标状态 0-成功
BEGIN
select @PoolSql = .....
select @MyErr = 0
begin transaction @TransName
Execute(@PoolSql) -- 有错误
Select @MyErr = @MyErr + @@error
update BookBaseInfo set Valid = 0 where ... -- 无错误
Select @MyErr = @MyErr + @@error
if @MyErr <>0
rollback transaction @TransName
else
commit transaction @TransName
FETCH NEXT FROM BaseInfo_cursor INTO... -- 取下一条记录字段值
END
整个循环应该执行两次,第一次出现错误,回滚,第二次循环内容就不执行了,什么原因呢?各位大侠帮助分析一下。