Transactional semantics

When operating in minimally logged mode, the atomicity of transactions is not guaranteed after a runtime rollback.

Because logging is incomplete at runtime, you cannot completely roll back the changes made by a failed command. All changes are applied to the database in commit mode. For example, you cannot roll back a transaction that deleted a number of rows; the changes to the deleted rows are already committed. If a transaction deletes rows from a page that is then deallocated, the page remains deallocated.

However, not logging changes does not interfere with locking the rows or pages affected. Even if a DML command runs in minimally logged mode with no rollback available, the locks on the affected rows and pages are acquired and held until the end of the transaction, and are released only upon transaction completion, be it rollback or commit.

Issuing a rollback command when the transaction was executed with minimal logging on one or more tables raises a warning that Adaptive Server is committing the transaction at the point where it encountered the rollback.