Applies To
SQL Server 2008 Service Pack 3 SQL Server 2008 Enterprise SQL Server 2008 Developer SQL Server 2008 Standard SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2008 R2 Web SQL Server 2008 R2 Workgroup SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Symptoms

When you run a complex UPDATE statement together with a NOLOCK hint against a table in Microsoft SQL Server 2008, SQL Server 2012, SQL Server 2008 R2, or SQL Server 2014, nonclustered index corruption may occur. Additionally, the following error message may be logged in the SQL Server error log:

<Date><Time> spid # Error: 8646, Severity: 21, State: 1.<Date><Time> spid # Unable to find index entry in index ID 3, of table 2102402659, in database ‘<DatabaseName>'. The indicated index is corrupt or there is a problem with the current update plan. Run DBCC CHECKDB or DBCC CHECKTABLE. If the problem persists, contact product support.<Date><Time> spid # Using 'dbghelp.dll' version '4.0.5'<Date><Time> spid # **Dump thread - spid = 0, EC = 0x0000000BD70624C0<Date><Time> spid # ***Stack Dump being sent to Y:\MSSQL\MSSQL10.MSSQLSERVER\MSSQL\LOG\SQLDump0003.txt<Date><Time> spid # * *******************************************************************************<Date><Time> spid # *<Date><Time> spid # * BEGIN STACK DUMP:<Date><Time> spid # * <Date><Time> spid#<Date><Time> spid # *<Date><Time> spid # * CPerIndexMetaQS::ErrorAbort - Index corruption<Date><Time> spid # *

Note You can apply a NOLOCK hint to source tables in a statement. However, you cannot apply a NOLOCK hint to target tables in a statement.

Cause

This issue occurs because the NOLOCK hint causes the query to incorrectly read values in the table when the query reads the same values multiple times.

Each new cumulative update for SQL Server contains all the hotfixes and all the security fixes that were included with the previous cumulative update. Check out the latest cumulative updates for SQL Server:

Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

Need more help?

Want more options?

Explore subscription benefits, browse training courses, learn how to secure your device, and more.