When BEGIN TRANSACTION/ET pairs are nested, Vantage checks to make sure that each BEGIN TRANSACTION statement has a matching END TRANSACTION statement.
The outermost BEGIN TRANSACTION/END TRANSACTION pair defines the explicit transaction. The inner BEGIN TRANSACTION/END TRANSACTION pairs do not effect the transaction because Vantage does not support transaction nesting.
Any embedded multiple-statement requests and macro executions are considered part of the outermost BEGIN TRANSACTION/END TRANSACTION explicit transaction and are not considered to be implicit transactions in this context.
A multiple-statement request can have only one BEGIN TRANSACTION statement, which must be the first statement in a request.
For example, the following series of requests is treated as one explicit transaction.
BEGIN TRANSACTION; SELECT …; UPDATE … EXEC a(3,4); BEGIN TRANSACTION; UPDATE …; INSERT … ;INSERT …; END TRANSACTION; INSERT …; END TRANSACTION;
If an error occurs in the middle of a nested BEGIN TRANSACTION/END TRANSACTION, everything rolls back to the initial BEGIN TRANSACTION.