在asp.net中的事务和存储过程之间有什么区别吗?
本文关键字:之间 什么 区别 存储过程 net asp 事务 | 更新日期: 2023-09-27 18:06:11
如果我有3个sql查询,所有三个必须执行或不执行。如果我在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事务之间的区别是什么?