Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在实现内部没有事务的存储过程。实际上,它会,但仅在特定地点将时间减少到最低限度。存储过程的性质是我一次只想要一个运行。
我尝试使用 sp_getapplock 但很快发现它需要在事务内部。
有没有其他选择可以锁定整个过程但不将其包装到事务中?
通过 @LockOwner 传入 Session 以获得 Session 范围的锁;获取锁定时,这不需要事务处于活动状态。
例如
EXEC @res = sp_getapplock @Resource = 'Lock ID', @LockOwner = 'Session', @LockMode = 'Exclusive'; .. code .. EXEC @res = sp_releaseapplock @Resource = 'Lock ID';