您可以调用多个存储过程作为事务回滚的一部分吗

本文关键字:事务 一部分 调用 存储过程 | 更新日期: 2023-09-27 18:00:25

我有一个创建记录的存储过程。

我可以使用SqlTransaction对象多次调用create并在任何插入失败时回滚所有插入吗?

您可以调用多个存储过程作为事务回滚的一部分吗

只要存储过程不提交自己:是的,你可以这样做。

这是一开始就有交易的原因。

是的,只需在事务中多次执行该命令,并为提交/回滚添加一个try/catch块:

transaction = connection.BeginTransaction("SampleTransaction");
try {
      // Execute Stored Procedure n times here.
      transaction.Commit();
} catch(SQLException e) {
     transaction.Rollback();
}

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqltransaction.aspx

为了获得最佳实践,您可能希望将.Rollback封装在try/catch中,以防回滚失败。