我需要使用ADO.NET在.NET中实现嵌套事务。
情况如下:
--> Start Process (Begin Transaction)
--> Do DB things
--> Begin Transaction for step 1
--> Step 1
--> Commit transaction for step 1
--> Begin transaction for step 2
--> Step 2
--> Rollback transaction for step 2
--> etc ...
--> Do DB things
--> End Process(Commit or Rollback ALL commited steps --> a.k.a the process)
这可以用事务范围来完成吗?有人能提供一个例子吗?
此外,我需要这个过程适用于 SQL Server 2005 和 Oracle 10g 数据库...事务范围能在这两种数据库引擎中工作吗?
编辑:请注意,以下情况可能会发生:
步骤1已提交, 步骤2已回滚 步骤3已提交。
该过程已提交
(步骤1和步骤3确实将数据存储到数据库中,步骤2则没有)
另一方面...
步骤1已提交, 步骤2已回滚 步骤3已提交。
该过程已回滚。
没有数据提交到数据库中。
注意:没有可用的数据库架构或域值。