在asp.net中的事务和存储过程之间有什么区别吗?

本文关键字:之间 什么 区别 存储过程 net asp 事务 | 更新日期: 2023-09-27 18:06:11

如果我有3个sql查询,所有三个必须执行或不执行。如果我在asp.net代码或存储过程中编写此查询是否有任何差异?

在asp.net中的事务和存储过程之间有什么区别吗?

如果你在一个DB实例上做当前连接的所有事情,基本上你会发现使用T-SQL事务(BEGIN TRAN/COMMIT TRAN)或ADO没有什么区别。. NET transactions(TransactionScope, BeginTransaction…)

但是请注意,您可以使用事务作用域将多个连接(对多个DB实例的请求)分组在一个事务中。

都是管理事务的有效方法。使用存储过程的优点是网络流量更少,执行速度更快,更好地封装数据库等,而使用asp.net允许你涉及一些高级逻辑或使用其他编程的部分,这可能会影响你的查询做什么。

可以像在数据库中使用事务一样在。net中使用TransctionScope

但是要小心选择正确的隔离级别。

默认情况下,TransactionScope以Serializable隔离级别执行。这可能不是你想要的。

数据库默认隔离级别更有可能是读提交。

出于效率的考虑,您最好编写带有在错误时回滚的事务的SP。如果只是为了简单,直接SQL,以及SP只编译一次,以便将来更快地执行。

使用SqlConnection.BeginTransaction()时无差异

这个问题可能是存储过程级别的SQL事务与SqlConnection级别的SQL事务之间的区别是什么?

相关文章: