从C#回滚一组Oracle存储过程

时间:2011-03-17 12:45:38

标签: c# oracle rollback

我在Oracle中有一组storred proc,它将用户的信息保存到许多不同的表中。

如果其中任何一个失败,我想回滚更改。但是,每个存储过程中都有一个commit语句。

我可以/我该怎么做?

2 个答案:

答案 0 :(得分:3)

从数据访问层控制您的事务,并从PL / SQL脚本/包中删除提交事务。

答案 1 :(得分:0)

using (TransactionScope scope = new TransactionScope())
{
    //Do all your SP work here

    scope.Commit();
}

您还需要对System.Transactions的引用。

如果某些内容失败,将抛出异常并回滚所有内容。 “using”语句将自动处理范围和回滚。