| title | Errors and Batches | Microsoft Docs | |||||
|---|---|---|---|---|---|---|
| ms.custom | ||||||
| ms.date | 01/19/2017 | |||||
| ms.prod | sql | |||||
| ms.prod_service | connectivity | |||||
| ms.reviewer | ||||||
| ms.technology | connectivity | |||||
| ms.topic | conceptual | |||||
| helpviewer_keywords |
|
|||||
| ms.assetid | 6debd41d-9f4c-4f4c-a44b-2993da5306f0 | |||||
| author | David-Engel | |||||
| ms.author | v-daenge |
When an error occurs while executing a batch of SQL statements, one of the following four outcomes are possible. (Each possible outcome is data source-specific and might even depend on the statements included in the batch.)
-
No statements in the batch are executed.
-
No statements in the batch are executed and the transaction is rolled back.
-
All of the statements before the error statement are executed.
-
All of the statements except the error statement are executed.
In the first two cases, SQLExecute and SQLExecDirect return SQL_ERROR. In the latter two cases, they may return SQL_SUCCESS_WITH_INFO or SQL_SUCCESS, depending on the implementation. In all cases, further error information can be retrieved with SQLGetDiagField, SQLGetDiagRec, or SQLError. However, the nature and depth of this information is data source-specific. Furthermore, this information is unlikely to exactly identify the statement in error.