BEGIN TRANSACTION IF TABLEU(.T.,'A') .AND.TABLEU(.T.,'B') .AND.TABLEU(.T.,'C') .AND. .... ENDTRANSACTION ELSE ROLLBACK ENDIFIf the error is found on the first table, all tables rollback. But if the error is on the 3rd or higher table, the rollback works only on tables after the error. The table 1 & 2 get commited. Can anyone explain why this happens & how to work around it ?