• thank you all.

    Jeff, I really need to do it in segments according to TOP (@TOP_HANDLED_ROWS).

    according to your suggestion, i'm still a bit afraid to leave it without any NOLOCK at the select part (i'm sorry i'm repeating myself all the time but i really don't care about dirty reads, i just want to avoid shared locks as well - because I had some deadlocks involving shared locks as well once).

    maybe using READ_COMMITTED_SNAPSHOT as opc-three suggested will be good as well..