Instructs the database management system to treat multiple
database operations as a single transaction. Provides database
commit and rollback processing.
Note that distributed transactions (transactions across multiple datasources) are not supported - you must commit one transaction and begin a separate transaction to one database before writing a query to another (CFMX7 Manual)


 transaction { }

Attribute Reference

action string
Default: begin

begin: the start of the block of code to execute
commit: commits a pending transaction
rollback: rolls back a pending transaction
setsavepoint: Marks a place within the transaction as a savepoint.
  • begin
  • commit
  • rollback
  • setsavepoint

isolation string

ODBC lock type.
  • read_uncommitted
  • read_committed
  • repeatable_read
  • serializable

savepoint string

The name of the savepoint in the transaction. Used with action="setsavepoint" or action="rollback"

nested boolean

specifies whether transaction is nested or not
  • true
  • false



Lucee does not currently support the savepoint attribute.

Sample code using the cftransaction tag

transaction { 
 try { 
 // code to run 
 transaction action="commit"; 
 catch(any e) { 
  transaction action="rollback"; 

 <!--- code to run ---> 
   <cftransaction action="commit" /> 
 <cfcatch type="any"> 
 <cftransaction action="rollback" /> 

Signup for cfbreak to stay updated on the latest news from the ColdFusion / CFML community. One email, every friday.

Fork me on GitHub