27,579
社区成员
发帖
与我相关
我的任务
分享
USE tempdb
GO
CREATE TABLE dbo.tb(
id int identity(1, 1),
name nvarchar(128))
INSERT tb
( name
)
SELECT TOP 100
name
FROM syscolumns;
-- 模拟第1个用户
-- 查询窗口发出下面的查询语句
BEGIN TRAN
-- 事务不提交或者回滚, 以保持锁不释放
SET ROWCOUNT 20
SELECT *
FROM tb WITH(UPDLOCK, READPAST)
-- 模拟第2个用户
-- UPDLOCK 让锁保留到事务结束, READPAST 跳过已经锁定的数据
-- 查询窗口发出下面的查询语句
BEGIN TRAN
-- 事务不提交或者回滚, 以保持锁不释放
SET ROWCOUNT 20
SELECT *
FROM tb WITH(UPDLOCK, READPAST)