Select com lock

09/05/2013

0

Boa noite.
Gostaria de uma dica ou ajuda para fazer um select em uma tabela e o registro encontrado tem que ficar em lock, pois na sequência farei um update nela.
Este lock é necessário pois é uma tabela onde muitos usuários acessam dentro de um callcenter e cada um só pode pegar 1 linha por vez.

Agradeço previamente a atenção e boa vontade!!
Rafael Brandão

Rafael Brandão

Responder

Posts

15/05/2013

Alex Lekao

Ola Boa tarde!!!

Nao sei bem se isso eh possivel.

mas dependendo da sua necessidade e do tempo que isso demoraria, vc poderia iniciar uma transaction e fazer as operacoes, e qdo terminasse seria somente finalizar a transacao, normalmente qdo isso eh feito todos os usuarios do banco vao entrar em uma fila de espera, entao eh recomendavel que isso seja muito rapido para que nao fiquem muito tempo aguardando.

Se nao me engano os comandos sao Begin Tran e qdo terminar, end tran.

Como disse nao tenho certeza pq praticamente nao uso.

Talvez resolva por hora o que precisa fazer.

Espero ter ajudado.

Abraco.

Alex - Lekao
Responder

16/05/2013

Rafael Brandão

Boa tarde Alex.
Na verdade eu já estou usando o begin transaction.
Estou usando o begin transation com um CTE dentro para montar uma fila.
Quando ocorre o script do CTE o primeiro código da tabela é atrelado a 1 usuário e após isso a transação é finalizada.
O que eu esperava que acontecesse é que o próximo usuário que estava em lock pegasse o próximo código e assim sucessivamente, porém se há 2 usuários em lock, quando a primeira transação finaliza os 2 usuários em lock pegam o mesmo registro, ou seja, o código da tabela fica atrelado a 2 usuários.

De qualquer forma, obrigado pela ajuda, se conseguir resolver eu posto aqui.
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar