I'm hunting a bug in our software and wonder if a Select using NOLOCK could give incomplete rows. Let's say my table has a row like

A A A A A A ...

and while selecting with NOLOCK an insert with

B B B B B B ...

is happening. The table itself could have several 100.000 rows and a lot of indexes. Is it possible that the result looks like this.

A B B A B A ...

In other words could it be possible to get a mixture of different rows back?

As far as I understood NOOLOCK does not care about transaction states but I never found a statement about row completeness. I could imagine that depending on indexes a incomplete row could happen. Maybe this is even a driver or API issue (in our case C++ with native SQL functions).

Thank you

Browse other questions tagged or ask your own question.