A única maneira de obter um desenfileiramento de bloqueio sem pooling é
WAITFOR (RECEIVE)
. O que implica em filas do Service Broker, com toda a sobrecarga adicional. Se você estiver usando tabelas comuns como filas você não poderá obter o bloqueio sem sondagem. Você deve pesquisar a fila solicitando uma operação de desenfileiramento e, se não retornar nada, hiberne e tente novamente mais tarde.
Receio discordar de Andomar aqui:enquanto sua resposta funciona como uma pergunta genérica 'há alguma linha na tabela?' quando se trata de enfileiramento, devido à natureza ocupada da sobreposição de enfileiramento/desenfileiramento, a verificação de linhas como essa é um impasse (quase) garantido sob carga. Quando se trata de usar tabelas como fila, deve-se sempre manter as operações básicas de enfileiramento/desenfileiramento e não tentar coisas extravagantes.