... will select count(*) get the keep changed record numbers even if (nolock) hint is on?
Actually, it will count uncommitted records if and only if
(nolock) or the equivalent is set on.
With normal READ COMMITTED isolation level, the count(*) query will wait for the locks to clear before completing.
Edit: corrected typo.
SQL DBA,SQL Server MVP(07, 08, 09) Prosecutor James Blackburn, in closing argument in the Fatal Vision murders trial:
If in the future, you should cry a tear, cry one for them [the murder victims]. If in the future, you should say a prayer, say one for them. And if in the future, you should light a candle, light one for them.