.NET TransactionScope类和T-SQL TRAN COMMIT和ROLLBACK

Mic*_*ern 5 .net t-sql database transactions

我目前正在编写一个应用程序,需要为我的业务实体进行多次插入,更新和删除.我使用TransactionScope类来保证所有存储过程可以作为单个工作单元提交或回滚.

我的问题是,如果我在.NET类库中使用TransactionScope类,我还需要使用COMMIT TRAN和ROLLBACK TRAN是我的每个存储过程吗?

Mar*_*ell 8

不,如果您的事务使用TransactionScope,则不需要显式事务 - 但是:重要的是您应该Transaction Binding=Explicit Unbind;在连接字符串中设置.完整的详细信息在这里,但是否则你最终可以得到回滚的前几个操作,最后几个提交(或者更确切地说,在任何事务之外运行).


Sai*_*han 2

在 2005 年,这是没有必要的,在 2000 年,我会这样做,而且,我通常将 transactionscope 放在“using”块中。

与 2005 相比,在 2000 及更早版本上使用它时会出现一些性能问题。

这里

谢谢