笔记200 自定义锁实现
1 --自定义锁实现
2 --在新建查询窗口一中
3 --会话A:更改数据表orders中指定的记录
4 USE TransactionTestDb
5 GO
6 SELECT * FROM dbo.Orders
7 GO
8 EXEC sys.sp_getapplock @Resource = N'testlock', -- nvarchar(255)
9 @LockMode = 'exclusive', -- varchar(32) 排他锁
10 @LockOwner = 'session', -- varchar(32)
11 @LockTimeout = -1 -- int
12
13 UPDATE dbo.Orders SET Qutantity=Qutantity +100
14 FROM dbo.Orders
15 WHERE OrderNo =1
16
17 WAITFOR DELAY '00:00:02'
18
19 EXEC sys.sp_releaseapplock @Resource = N'testlock', -- nvarchar(255)
20 @LockOwner = 'session' -- varchar(32)
21
22
23
24 GO
25
26 --在新建查询窗口二中
27 --会话B:查询数据表orders中的详细记录
28 USE TransactionTestDb
29 GO
30 EXEC sys.sp_getapplock @Resource = N'testlock', -- nvarchar(255)
31 @LockMode = 'exclusive', -- varchar(32)
32 @LockOwner = 'session', -- varchar(32)
33 @LockTimeout = -1 -- int
34 SELECT * FROM dbo.Orders
35 GO