トランザクションはグループで実行されるSQL文のセットです。すべてが正しく実行されるか、まったく効果を及ぼさないかです。トランザクションは実行時にデータの整合性を保つためロックを使用します。トランザクションが正しく終了したら、COMMIT文を使用して更新を永続化します。そうでなければ、ROLLBACK文を使用して更新をキャンセルし、データベースを以前の状態に戻します。 
4DのトランザクションとSQLのトランザクションの間に違いはありません。両タイプのトランザクションは同じデータおよびプロセスを共有します。ローカルデータベースに適用されるBegin SQL/End SQLの間のSQL文、QUERY BY SQL、そして統合された汎用SQLコマンドは、常に標準のSQLコマンドと同じコンテキストで実行されます。
Note: 4Dは"自動コミット"オプションを提供していて、データ整合性を確保するために、SIUDコマンド (SELECT、INSERT、UPDATE、DELETE) 利用時に自動でトランザクションを開始し、受け入れることができます。詳細情報はSET PROCESS VARIABLE4Dと4D SQLエンジン統合の原則を参照してください。
 以下の例題は、複数の異なるトランザクション使用した場合の動作を説明します:
 empテーブルに“John”も“Smith”も追加されません:
  SQL LOGIN(SQL_INTERNAL;"";"") 
 START TRANSACTION 
 Begin SQL
    INSERT INTO emp
    (NAME)
    VALUES ('John');
 End SQL
 SQL EXECUTE("START") 
 SQL CANCEL LOAD
 SQL EXECUTE("INSERT INTO emp (NAME) VALUES ('Smith')") 
 SQL CANCEL LOAD
 SQL EXECUTE("ROLLBACK") 
 CANCEL TRANSACTION 
 SQL LOGOUTempテーブルに“John”のみが追加されます:
  SQL LOGIN(SQL_INTERNAL;"";"")
 START TRANSACTION
 Begin SQL
    INSERT INTO emp
    (NAME)
    VALUES ('John');
 End SQL
 SQL EXECUTE("START")
 SQL CANCEL LOAD
 SQL EXECUTE("INSERT INTO emp (NAME) VALUES ('Smith')")
 SQL CANCEL LOAD
 SQL EXECUTE("ROLLBACK") 
 VALIDATE TRANSACTION 
 SQL LOGOUTempテーブルに“John”も“Smith”も追加されません。外側のトランザクションが内側のトランザクションもキャンセルします:
  SQL LOGIN(SQL_INTERNAL;"";"")
 START TRANSACTION
 Begin SQL
    INSERT INTO emp
    (NAME)
    VALUES ('John');
 End SQL
 SQL EXECUTE("START")
 SQL CANCEL LOAD
 SQL EXECUTE("INSERT INTO emp (NAME) VALUES ('Smith')")
 SQL CANCEL LOAD
 SQL EXECUTE("COMMIT") 
 CANCEL TRANSACTION 
 SQL LOGOUTempテーブルに“John”と“Smith”が追加されます:
  SQL LOGIN(SQL_INTERNAL;"";"")
 START TRANSACTION
 Begin SQL
    INSERT INTO emp
    (NAME)
    VALUES ('John');
 End SQL
 SQL EXECUTE("START")
 SQL CANCEL LOAD
 SQL EXECUTE("INSERT INTO emp (NAME) VALUES ('Smith')")
 SQL CANCEL LOAD
 SQL EXECUTE("COMMIT") 
 VALIDATE TRANSACTION 
 SQL LOGOUT