Enstaka dödlägen på en RDBMS som låser som SQL Server/Sybase förväntas.
Du kan koda på klienten för att försöka igen som rekommenderat min MSDN "Hantera dödlägen" .Undersök i princip SQLException och kanske en halv sekund senare, försök igen.
Annars bör du granska din kod så att all åtkomst till tabeller är i samma ordning. Eller så kan du använda SET DEADLOCK_PRIORITY för att kontrollera vem som blir ett offer.
På MSDN för SQL Server finns "Minimering av dödlägen" som startar
Detta nämner också "Use a Lower Isolation Level" som jag inte gillar (samma som många SQL-typer här på SO) och är din fråga. Gör inte det är svaret... :-)
- Vad kan hända som ett resultat av att använda (nolock) på varje SELECT i SQL Server?
- https://dba.stackexchange.com/q/2684/630
Obs:MVCC typ RDBMS (Oracle, Postgres) har inte detta problem. Se http://en.wikipedia.org/wiki/ACID#Locking_vs_multiversioning men MVCC har andra problem.