Tipicamente é por processo concorrencial em escrita sobre a tabela, mas sem mais informação é impossível de dizer.
Podes começar por uma abordagem simples usando "with (rowlock)" no comando de update, forçando assim o lock apenas aos registos que vão ser atualizados e não à tabela.
A abordagem menos simples é colocares o update isolado numa transação.
A abordagem "correta" é analisares se é possível teres ai uma execução de código que tente, concorrencialmente, fazer lock aos mesmos registos mais de uma vez. Esqueci-me de referir que se te for possível, usa o profiler para ver o que se está a passar na base de dados e tentar perceber quem está a aceder a essa tabela e em que condições o faz.
↧