FIX: "CPerIndexMetaQS::ErrorAbort - Index corruption" error when you try to update a partitioned view in SQL Server 2008 R2

Applies to: SQL Server 2008 R2 DatacenterSQL Server 2008 R2 DeveloperSQL Server 2008 R2 Enterprise

Microsoft distributes Microsoft SQL Server 2008 R2 fixes as one downloadable file. Because the fixes are cumulative, each new release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2008 R2 fix release.

Symptoms


Consider the following scenario:
  • You create a partitioned view in SQL Server 2008 R2.

    For example, you create a partitioned view named View, and you define the CHECK constraints for the ColA column in the member tables of View1.
  • You create a clustered index for a column in the member tables of the partitioned view.

    For example, you create a clustered index for the ColB column in the member tables of View1.
  • You create a composite nonclustered index on multiple columns in the member tables. These columns include the columns that have a clustered index.

    For example, you create a nonclustered index on the ColA, ColB, and other columns in the member tables of View1.
  • You run an UPDATE statement against View1 to update the ColA column by using a predicate for the ColB column in the WHERE clause.

In this scenario, you receive the following error message when you run the statement:
Msg 208, Level 16, State 1, Line 1

Invalid object name 'View1'.
Additionally, a mini-dump file is generated in the SQL Server log folder. Also, an error message that resembles the following is logged for index corruption in the SQL Server Errorlog file:
2010-12-01 16:40:32.25 spid57 Using 'dbghelp.dll' version '4.0.5'

2010-12-01 16:40:32.29 spid57 **Dump thread - spid = 0, EC = 0x0000000095C960F0

2010-12-01 16:40:32.30 spid57 ***Stack Dump being sent to E:\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\LOG\SQLDump0001.txt

2010-12-01 16:40:32.30 spid57 * *******************************************************************************

2010-12-01 16:40:32.30 spid57 *

2010-12-01 16:40:32.30 spid57 * BEGIN STACK DUMP:

2010-12-01 16:40:32.30 spid57 * 12/01/10 16:40:32 spid 57

2010-12-01 16:40:32.30 spid57 *

2010-12-01 16:40:32.30 spid57 * CPerIndexMetaQS::ErrorAbort - Index corruption

Cause


This issue occurs because of a regression in the query optimizer in SQL Server 2008 R2.

Resolution


Cumulative update information

SQL Server 2008 R2 Service Pack 1

The fix for this issue was first released in Cumulative Update 1 for SQL Server 2008 R2 Service Pack 1. For more information about how to obtain this cumulative update package, click the following article number to view the article in the Microsoft Knowledge Base:
2544793 Cumulative Update package 1 for SQL Server 2008 R2 Service Pack 1
Note Because the builds are cumulative, each new fix release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2008 R2 fix release. We recommend that you consider applying the most recent fix release that contains this hotfix. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
2567616 The SQL Server 2008 R2 builds that were released after SQL Server 2008 R2 Service Pack 1 was released

SQL Server 2008 R2

The fix for this issue was first released in Cumulative Update 7. For more information about how to obtain this cumulative update package for SQL Server 2008 R2, click the following article number to view the article in the Microsoft Knowledge Base:
2507770 Cumulative Update package 7 for SQL Server 2008 R2
Note Because the builds are cumulative, each new fix release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2008 R2 fix release. We recommend that you consider applying the most recent fix release that contains this hotfix. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
981356 The SQL Server 2008 R2 builds that were released after SQL Server 2008 R2 was released


Status


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

References


For more information about partitioned views in SQL Server, visit the following Microsoft Developer Network (MSDN) website:For more information about the Incremental Servicing Model for SQL Server, click the following article number to view the article in the Microsoft Knowledge Base:

935897 An Incremental Servicing Model is available from the SQL Server team to deliver hotfixes for reported problems

For more information about the naming schema for SQL Server updates, click the following article number to view the article in the Microsoft Knowledge Base:

822499 New naming schema for Microsoft SQL Server software update packages
For more information about software update terminology, click the following article number to view the article in the Microsoft Knowledge Base:
824684 Description of the standard terminology that is used to describe Microsoft software updates