If an error is found in a request, that request ends, but typically, the entire transaction does not end.
A single statement or multiple-statement request that does not include the BEGIN TRANSACTION and END TRANSACTION statements is treated as an implicit transaction. If an error is found in any statement in this type of request, then the entire transaction is aborted.
Abort Processing
Following are the steps for ending processing:
- Back out any changes made to the database as a result of any preceding statements in the transaction.
- Delete any associated spooled output.
- Release any associated locks.
- Bypass any remaining statements in the transaction.
Completed Requests
A request is considered to have completed when either an End of Text character or the request terminator is encountered. The request terminator is a semicolon (;) as the last nonpad character on an input line.
A request terminator is optional except when the request is embedded in an SQL macro or trigger when entered through BTEQ.