Begins a transaction.
The TRANSACTION START
statement initiates a transaction. There is no command to demarcate the end of a transaction. All subsequent statements are part of this transaction until the transaction is closed, either by a TRANSACTION COMMIT
statement or a TRANSACTION ABORT
statement. If neither a TRANSACTION COMMIT
nor a TRANSACTION ABORT
is issued, the transaction remains open until the end of the program, at which time it is automatically rolled back.
You must specify either a THEN clause, an ELSE clause, or both a THEN and an ELSE clause. If the transaction start is successful, the THEN clause is executed. If the transaction start fails, the ELSE clause is executed. The statements
argument can be the NULL
keyword, a single statement, or a block of statements terminated by the END
keyword. A block of statements has specific line break requirements: each statement must be on its own line and cannot follow a THEN, ELSE, or END keyword on that line.
File locks and record locks that were taken out during a transaction are released at the end of a transaction. If there are nested transactions, the release of locks taken out during the inner transactions is delayed until the completion of the outermost transaction. This release of locks is part of a successful TRANSACTION COMMIT
or TRANSACTION ABORT
operation. Locks are described in the LOCK