DE http://msdn.microsoft.com/en-us/library/ ms187373.aspx NOLOCK É equivalente a READUNCOMMITTED. Para obter mais informações, consulte READUNCOMMITTED posteriormente neste tópico.
READUNCOMMITED lerá as linhas duas vezes se elas forem o assunto de uma transação - uma vez que ambas as linhas de avanço e retrocesso existem dentro do banco de dados quando a transação está em processo.
Por padrão, todas as consultas são lidas como confirmadas, o que exclui linhas não confirmadas
Quando você insere em uma tabela temporária, o select fornecerá apenas linhas confirmadas - acredito que isso abrange todos os sintomas que você está tentando explicar