通过设置隔离级别-READ UNCOMMITTED读取加了排它锁的数据

--举例说明

--第一步
BEGIN TRAN; 
UPDATE  dbo.Material_SO_PipeOrder
SET     OrderNO = '修改后';
--第三步
COMMIT TRAN;
--第二步
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT  *
FROM    dbo.Material_SO_PipeOrder;

执行步骤:

1.执行第一步:开启事务,进行数据修改,获取表的排它锁,但并不提交事务;

2.执行第二步:设置隔离级别为READ UNCOMMITED(未提交读);即允许在有事务未提交的情况读取数据;但因为修改事务还没有提交,所以只能读取旧的数据,即脏数据;

3.执行第三步:提交事务,此时,如果再次执行第二步,可能得到的结果会与未提交情况下查询的结果不同;

注意:系统默认隔离级别为READ COMMITED(已提交读),因此如果不加这句

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

将隔离级别修改,第二步查询操作会被一直阻塞下去,直到第三步事务提交后,才会读取数据


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值