Como funciona o comando SET LOCK_TIMEOUT
O comando SET LOCK_TIMEOUT serve para especificar o número de milissegundos que a conexão vai esperar pela liberação de um registro que esteja em lock por outra conexão.
Para fazer um teste, abra duas instancias do query analyzer. Na primeira instancia, execute o seguinte comando:
SET TRANSACTION ISOLATION LEVEL SERIALIZABLEBEGIN TRANSACTIONUPDATE Customers SET Region = ‘AB’
Na segunda instância, digite o seguinte:
SET LOCK_TIMEOUT 2000SELECT * FROM Customers
Você vai perceber que a segunda instancia vai tentar fazer um SELECT na tabela customer (que está em lock pela primeira conexão) e vai esperar apenas 2 segundos para que o lock seja liberado. Caso isto não ocorra, o SQL Server apresentara um erro.