We run SQL Server 2000 and we get a few of these errors every night.
Could not continue scan with NOLOCK due to data movement
The query that throws this error is a large complex query that joins over a dozen tables. Our underlying data can be updated frequently.
The cultural 'best-practice' is that, in the past, introduction of NOLOCK
hints increased performance and improved concurrency. This query doesn't need to be 100% accurate, i.e. we will tolerate dirty reads etc. However, we are struggling to understand why the database is throwing this error, even though we have all these locking hints.
Can anyone shed some light on this - be gentle, I'm actually a programmer, not a DBA :)
PS: We have applied the fix mentioned below previously: http://support.microsoft.com/kb/815008