//调试下面语句会发现没有加with(nolock)的slect语句会等待拿到lock之后进行查询
begin tran //增删改 会加TABLOCKX(排它表锁) 选项被选中时,SQL Server 将在整个表上置排它锁直至该命令或事务结束。这将防止其他进程读取或修改表中的数据。
select * from Student 持有共享锁,不必等待,共享的
update Student set StuName = 66666 where StuID=1001
rollback tran
//with(nolock) SQL Server 在读取或修改数据时不加任何锁。 在这种情况下,用户有可能读取到未完成事务(Uncommited Transaction)或回滚(Roll Back)中的数据, 即所谓的“脏数据”。
select * from Student with(nolock)
//下面这个会等待(排它表锁)释放
select * from Student
具体查看http://blog.csdn.net/jqrsdsy/article/details/19618931
时间: 2024-12-19 16:52:34