Esto puede suceder porque una selección bloquea dos índices diferentes, mientras que una actualización bloquea los mismos índices en el orden opuesto. La selección necesita dos índices porque el primer índice no cubre todas las columnas a las que necesita acceder; la actualización necesita dos índices porque si actualiza la columna clave de un índice, debe bloquearla.
http://blogs.msdn.com/bartd/archive /2006/09/25/770928.aspx tiene una explicación fantástica. Las soluciones sugeridas incluyen agregar un índice que cubra todas las columnas que necesita la selección, cambiar al aislamiento de instantáneas u obligar explícitamente a la selección a obtener un bloqueo de actualización que normalmente no necesitaría.