修复:当您尝试更新 SQL Server 2008 R2 中的分区的视图时,"CPerIndexMetaQS::ErrorAbort-索引损坏"错误,

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 2451688
Microsoft 为一个可下载文件分发 Microsoft SQL Server 2008 R2 的修补程序。修补程序是累积性的因为每个新版本包含的所有修补程序和附带上一个 SQL Server 2008 R2 的所有安全修补程序的修补都程序版本。
症状
请考虑以下情形:
  • 在 SQL Server 2008 R2 中创建分区的视图。

    例如,您创建名为的已分区的视图 视图并定义 检查 约束 可口可乐 成员表中的列 视图 1.
  • 成员表的分区视图创建聚集的索引的列。

    例如,您创建的聚集的索引 ColB 成员表中的列 视图 1.
  • 您创建一个复合的非聚集索引,在多个列上在成员表。这些列包含具有聚集的索引的列。

    例如,在上创建非聚集索引 可口可乐, ColB和其他的成员表中的列 视图 1.
  • 在运行 更新 根据语句 视图 1 若要更新 可口可乐 列使用的谓词 ColB 在列 在哪里 子句。

在这种情况下,当您运行报表时收到以下错误消息:
消息 208,级别 16,状态 1,第 1 行
无效的对象名称"视图 1"。
此外,SQL Server 日志文件夹中生成一个小型转储文件。此外,SQL Server 错误日志文件中的索引损坏记录类似于以下内容的错误消息:
2010-12-01 16:40:32.25 spid57 使用 dbghelp.dll 版本"4.0.5"
2010-12-01 16:40:32.29 spid57 * * 转储线程-spid = 0,EC = 0x0000000095C960F0
2010-12-01 16:40:32.30 spid57 *** 堆栈转储发送到 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 * 开始堆栈转储:
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-索引损坏
原因
在 SQL Server 2008 R2 中查询优化器有退化现象会出现此问题。
解决方案

累积更新信息

SQL Server 2008 R2 Service Pack 1

此问题的修补程序首次发布累积更新 1 中的 SQL Server 2008 R2 Service Pack 1。有关如何获取此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2544793 SQL Server 2008 R2 Service Pack 1 的累积更新包 1
注意: 生成是累积性的因为每个新修补程序版本包含的所有修补程序和附带上一个 SQL Server 2008 R2 的所有安全修补程序的修补都程序版本。我们建议您考虑将应用包含此修复程序的最新的修补程序版本。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2567616 在 SQL Server 2008 R2 Service Pack 1 月发布之后发布的 SQL Server 2008 R2 生成

SQL Server 2008 R2

累积更新 7 中首次发布此问题的修补程序。有关如何为 SQL Server 2008 R2 中获取此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2507770 SQL Server 2008 R2 的累积更新包 7
注意: 生成是累积性的因为每个新修补程序版本包含的所有修补程序和附带上一个 SQL Server 2008 R2 的所有安全修补程序的修补都程序版本。我们建议您考虑将应用包含此修复程序的最新的修补程序版本。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
981356 在SQL Server 2008 R2 发布后SQL Server 2008 R2 生成发布


状态
Microsoft 已经确认这是"适用于"一节中列出的 Microsoft 产品中的问题。
参考
在 SQL Server 中的分区视图的详细信息,请访问下面的 Microsoft 开发人员网络 (MSDN) 网站:对于 SQL Server 的增量服务模式的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
935897 增量服务模式是可以从 SQL Server 团队提供报告的问题的修补程序
有关命名 SQL Server 更新架构的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
822499对于 Microsoft SQL Server 软件更新程序包的新命名方案
有关软件更新术语的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
824684 用来描述 Microsoft 软件更新的标准术语的说明

警告:本文已自动翻译

属性

文章 ID:2451688 - 上次审阅时间:09/27/2015 05:47:00 - 修订版本: 3.0

Microsoft SQL Server 2008 R2 Analysis Services, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Express with Advanced Services, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Standard Edition for Small Business, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2451688 KbMtzh
反馈