アトミックトランザクションとしての DML 操作
DML 操作はトランザ��ション内で実行されます。トランザクションの実行には、すべての DML 操作が正常に完了することが求められます。いずれかの操作でエラーが発生した場合はトランザクション全体がロールバックされます。この場合、データは一切データベースにコミットされません。トランザクションの境界は、トリガ、クラスメソッド、匿名のコードブロック、Apex ページ、カスタム Web サービスメソッドのいずれかにすることができます。
トランザクション境界内部で発生するすべての操作は、操作の 1 つの単位に相当します。これは、トランザクション境界内で実行されたコードの結果として起動されたクラスやトリガなど、トランザクション境界から外部コードへのコールにも適用されます。たとえば、カスタム Apex Web サービスメソッドによってクラスのメソッドがコールされ、そのメソッドがいくつかの DML 操作を実行するという連続した操作があるとします。この場合、トランザクション内のすべての操作がエラーなしで実行を完了した後にのみ、すべての変更がデータベースにコミットされます。中間ステップのいずれかでエラーが発生した場合、すべてのデータベース変更はロールバックされ、トランザクションはコミットされません。