以下链接描述了可序列化的事务隔离级别。
假设我有一个用户更新表[dbo].[Table_A]
。另一个用户正在更新表[dbo].[Table_B]
。我想序列化这两个更新语句(意思是在第二个更新语句开始之前等待第一个更新语句),尽管事实上我们正在触及不同的表。我猜我不能使用表锁,但也许一个范围锁可以实现这一点。有人可以帮我理解代码的样子吗?或者这不适用于SQL Server 2008中的事务隔离级别功能吗?
答案 0 :(得分:1)
您可以放置应用程序锁:
EXEC sp_getapplock @resource = 'my_resource_token', @lockMode = 'Exclusive'
UPDATE ...
EXEC sp_releaseapplock @resource = 'my_resource_token'
如果另一个会话已获得my_resource_token
,则会锁定。