我在Oracle中有一组storred proc,它将用户的信息保存到许多不同的表中。
如果其中任何一个失败,我想回滚更改。但是,每个存储过程中都有一个commit语句。
我可以/我该怎么做?
答案 0 :(得分:3)
从数据访问层控制您的事务,并从PL / SQL脚本/包中删除提交事务。
答案 1 :(得分:0)
using (TransactionScope scope = new TransactionScope())
{
//Do all your SP work here
scope.Commit();
}
您还需要对System.Transactions的引用。
如果某些内容失败,将抛出异常并回滚所有内容。 “using”语句将自动处理范围和回滚。