--查询分析器
--窗口1
BEGIN TRAN
-- 延迟10秒,模拟并发访问.
WAITFOR DELAY '000:00:10'
SELECT [OrderSerial]
,[ProductID]
FROM [TestDB].[dbo].[Orders] WITH(TABLOCK) where OrderSerial = 'EX201001281'
WAITFOR DELAY '000:00:05'
COMMIT
--SELECT @@TRANCOUNT
--窗口2
SELECT [OrderSerial]
,[ProductID]
FROM [TestDB].[dbo].[Orders] where OrderSerial = 'EX201001281'
--结果:先执行1再执行2,表是不会被锁住的,2可以查询(默认是共享锁TABLOCK)
-- 如果1变成WITH(TABLOCKX)排他在其提交之前,表会被锁住,2被阻塞。
-- 注:前10秒2可以正常查询,后5秒会被阻塞
-- 自动提交模式变成显示模式,即要显示提交后解锁