General behaviour

When executing orders on a relational database, it is possible to include them in a transaction. Thus, if an error occurs during the transaction, it will be possible to Rollback all the orders executed since the last Commit. 


When creating the SQL Operation, in the Properties tab :

- clic on Sql Transaction Name to activate it and set a name (eg : TRANSAC1)

- clic on Sql Transaction Type to activate it and select  NOCOMMIT



Set the same configuration for all SQL Operations contained in the transaction.

If the transaction ends without any error, an automatic Commit is done by the runtime, on this transaction.


Restriction


With some technologies, there is a restriction : only DML orders can be rollbacked. DDL orders have an automatic (implicit) Commit.


Case 1 : DDL orders have an implicit Commit. Example with an Oracle database



The same behaviour was observed with HSQL, Postgres, MySQL, H2 and SybaseIQ databases. 



Case 2: DDL orders don't have implicit commit. Example of a MSSqlServer database :