来自代码的 Sql 客户端事务与数据库控制的事务
Posted
技术标签:
【中文标题】来自代码的 Sql 客户端事务与数据库控制的事务【英文标题】:Sql client transactions from code vs database-controlled transactions 【发布时间】:2010-08-09 17:22:01 【问题描述】:我一直在存储过程中完成事务,但现在我需要将一堆“动态”语句从针对sp_executesql
的代码执行到事务中。
在某些情况下,我特别需要READ UNCOMMITED
隔离级别(我知道那是做什么的,是的,这就是我需要的)。这是 SQL2008。
我的问题是:如果我使用隔离级别设置为IsolationLevel.ReadUncommitted
的SqlConnection 实例的BeginTransaction()
方法,是否会产生与执行具有READ UNCOMMITED
语句的存储过程相同的效果?
【问题讨论】:
【参考方案1】:是的,会的。
SqlConnection 使用 SQL 本地客户端,并且对 BeginTransaction
的调用会导致将其发送到服务器:
SET TRANSACTION ISOLATION LEVEL <WHATEVER>; BEGIN TRANSACTION;
【讨论】:
以上是关于来自代码的 Sql 客户端事务与数据库控制的事务的主要内容,如果未能解决你的问题,请参考以下文章
聊聊Spring事务控制策略以及@Transactional失效问题避坑