codeDB
EntrarTestar 7 dias grátis
Erros

Erro 1205 no SQL Server: deadlock — o que significa e como resolver

26 de agosto de 2026 · 4 min de leitura

Mensagem completa: "Transaction (Process ID 52) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction." — Msg 1205, Level 13, State 51 (o número do Process ID varia a cada ocorrência).

O que aconteceu

Duas transações travaram recursos em ordem cruzada e nenhuma conseguia avançar. O Lock Monitor do SQL Server detecta esse ciclo automaticamente (a cada ~5 segundos) e mata uma das duas — a "vítima" — pra destravar a outra. Não é corrupção nem bug: é o mecanismo de resolução de deadlock funcionando como projetado.

Por que "Rerun the transaction" é literal

A transação vítima foi desfeita (rollback automático) antes de a mensagem chegar até você. A aplicação deve capturar o erro 1205 especificamente e tentar de novo — é o padrão esperado, não um workaround. Se a aplicação não trata isso, o usuário vê o erro estourar na tela sem entender por quê.

Causas mais comuns

  • Duas transações acessando as mesmas tabelas em ordem diferente.
  • Índices ausentes forçando scan em vez de seek dentro da transação.
  • Transações longas demais, aumentando a janela de exposição ao lock.
Guia completo: Deadlock no SQL Server — como detectar e prevenir →

O codeDB captura o gráfico de deadlock (quem segurava o quê, quem foi a vítima) automaticamente, sem precisar configurar Extended Events na mão.

Artigos relacionados

Monitore seu SQL Server enquanto aprende.

7 dias grátis para aplicar tudo que você aprendeu aqui no seu próprio ambiente.

Começar gratuitamente