When you put NOLOCK in your query, SQL Server will:
– Read rows twice
– Skip rows altogether
– Show you changes that never actually got committed
– Let your query fail with an error
This is not a bug. This is by design.
There are reasons why you might want to use NOLOCK, but start with no and you’ll be in better shape.
Also, remember that
NOLOCK really means “No, lock!”