Cela peut arriver parce qu'une sélection verrouille deux index différents, tandis qu'une mise à jour verrouille les mêmes index dans l'ordre inverse. Le select a besoin de deux index car le premier index ne couvre pas toutes les colonnes auxquelles il doit accéder; la mise à jour nécessite deux index car si vous mettez à jour la colonne clé d'un index, vous devez verrouiller celle-ci.
http://blogs.msdn.com/bartd/archive /2006/09/25/770928.aspx a une explication fantastique. Les correctifs suggérés incluent l'ajout d'un index qui couvre toutes les colonnes dont la sélection a besoin, le passage à l'isolement d'instantané ou le forçage explicite de la sélection à saisir un verrou de mise à jour dont il n'aurait normalement pas besoin.