假设 MSSQL Server 上的存储过程使用 BEGIN TRANSACTION/COMMIT TRANSACTION
使用 SQL 事务,这与通过 SqlConnection.BeginTransaction() 使用 ADO.NET 开始和提交事务有何不同
?
最佳答案
对于 ADO.NET,没有区别。 MSDN 中隐含地指出,对于 SqlTransaction 对象,Commit 方法被认为“如果事务已在服务器上回滚,则会失败。”
此外,一旦您在连接上执行 .BeginTransaction,SQL Server Profiler 就会显示“SET TRANSACTION ISOLATION LEVEL READ COMMITTED;BEGIN TRAN”。
然而,对于 ADO(不是 .NET)来说,情况并非如此。这曾经允许有效的嵌套事务的良好场景(服务器事务嵌套在客户端事务内)。尽管我经常使用它,但我无法准确定义这种情况下的“客户端事务”是什么。
关于.net - 存储过程级别的 SQL 事务和 SqlConnection 级别的 SQL 事务有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1046061/