FRÅN http://msdn.microsoft.com/en-us/library/ ms187373.aspx NOLOCK Motsvarar READUNCOMMITTED. För mer information, se READUNCOMMITTED längre fram i detta ämne.
READUNCOMMITED kommer att läsa rader två gånger om de är föremål för en överföring - eftersom både fram- och tillbakarullningsraderna finns i databasen när transaktionen är IN-process.
Som standard läses alla frågor som är läskommitterade vilket exkluderar obekräftade rader
När du infogar i en temporär tabell kommer select bara att ge dig committed rader - jag tror att detta täcker alla symptom du försöker förklara