1

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

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

4

2 回答 2

2

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

这是首先进行交易的原因。

于 2013-02-20T13:24:08.293 回答
1

是的,只需在事务中多次执行命令并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 中,以防回滚失败。

于 2013-02-20T13:24:13.147 回答