How to implement nested SQL transactions with ADO.NET? <p>I need to implement <strong>nested</strong> transactions in .NET <strong>using ADO.NET</strong>.</p> <p>The situation is as follows:</p> <pre><code>--&gt; Start Process (Begin Transaction) --&gt; Do DB things --&gt; Begin Transaction for step 1 --&gt; Step 1 --&gt; Commit transaction for step 1 --&gt; Begin transaction for step 2 --&gt; Step 2 --&gt; Rollback transaction for step 2 --&gt; etc ... --&gt; Do DB things --&gt; End Process(Commit or Rollback ALL commited steps --&gt; a.k.a the process) </code></pre> <p>Can that be done with transaction scopes? Could anyone post an example?</p> <p>In addition I'd need the process to work for <strong>SQL Server 2005 AND Oracle 10g</strong> databases... will transaction scopes work with both database engines?</p> <p><strong>Edit:</strong> Note this situation might happen:</p> <p>Step1 is commited, Step2 is rolled back Step3 is commited.</p> <p>The process is commited</p> <p>(Step1 and Step3 do store data into the database, step2 <strong>does not</strong>)</p> <p>On the other hand...</p> <p>Step1 is commited, Step2 is rolled back Step3 is commited.</p> <p>The process is rolled back.</p> <p>the <strong>NO DATA IS COMMITED</strong> to the database</p> <p>Note: No DB schema or domain values available</p>