Como usar um bloqueio de dois bancos de dados diferentes. Quando uma sessão adquire o bloqueio, nada impede que uma sessão diferente adquira o mesmo bloqueio de um banco de dados diferente.
Primeira sessão:
USE db_one;
EXEC @lock_result = sp_getapplock @Resource = 'my_resource',
@LockMode = 'Exclusive',
@LockTimeout = 30000;
Segunda sessão:
USE db_two;
EXEC @lock_result = sp_getapplock @Resource = 'my_resource',
@LockMode = 'Exclusive',
@LockTimeout = 30000;
A segunda sessão adquire o bloqueio sem atraso, em vez de aguardar o bloqueio. Agora, duas sessões parecem ter o mesmo bloqueio ao mesmo tempo.