应用对象
SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express 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 Express SQL Server 2012 Standard SQL Server 2012 Web

Microsoft 将 Microsoft SQL Server 2008 R2 Service Pack 1 修复分发为一个可下载文件。 由于修补程序是累积的,因此每个新版本都包含以前的 SQL Server 2008 R2 Service Pack 1 修复版本附带的所有修补程序和所有安全修补程序。

症状

请考虑以下情况:

  • 在 Microsoft SQL Server 2008 R2 或 Microsoft SQL Server 2012 中的列上创建非聚集索引。

  • 删除非聚集索引。

  • 更改在其上创建非聚集索引的列的排序规则。

  • 重新创建列的非聚集索引。

在这种情况下,您会收到以下错误消息:

位置: sobuild。 c:3392Expression: CompareRow (rightPageRow,* m_pSEBindings,keyCnt,* pHobtAccess,PAGE_LEAF_LEVEL) SPID: 53Process ID: 3268Msg 3624,级别20,状态1,第1行系统断言检查失败。 有关详细信息,请查看 SQL Server 错误日志。 通常,断言失败由软件错误或数据损坏导致。 若要检查数据库是否损坏,请考虑运行 DBCC CHECKDB。 如果你同意在安装期间将转储发送到 Microsoft,则会向 Microsoft 发送一个小转储。 从 Microsoft 的最新服务包或从技术支持部门获取的 QFE 中可能提供更新。 消息0、级别20、状态0、行0A 当前命令上出现严重错误。 应丢弃结果(如果有)。

注意当你在查询执行计划中运行使用并行的查询时,会出现此问题。

原因

出现此问题的原因是存储引擎元数据中的排序规则 ID 未与元数据中的排序规则 ID 同步。

解决方案

累积更新信息

SQL Server 2012 Service Pack 1 的累积更新包1

此问题的修补程序首次在累积更新1中发布。有关如何获取此累积更新包的 SQL Server 2012 Service Pack 1 的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2765331 SQL Server 2012 Service Pack 1 的累积更新包1注意 由于这些版本是累积的,因此每个新的修复版本都包含以前的 SQL Server 2012 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2772858 在发布 SQL Server 2012 Service Pack 1 之后发布的 SQL Server 2012 版本

SQL Server 2008 R2 Service Pack 2

此问题的修补程序首次在累积更新3中发布。有关如何为 SQL Server 2008 R2 Service Pack 2 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2754552 SQL Server 2008 R2 Service Pack 2 的累积更新包3 注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2008 R2 Service Pack 2 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2730301 发布 SQL Server 2008 R2 Service Pack 2 后发布的 SQL Server 2008 R2 版本

SQL Server 2012

此问题的修补程序首次在累积更新4中发布。有关如何为 SQL Server 2012 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2758687 SQL Server 2012 累积更新程序包4 注意 由于这些版本是累积的,因此每个新的修复版本都包含以前的 SQL Server 2012 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2692828 在 SQL Server 2012 发布后发布的 SQL Server 2012 版本

SQL Server 2008 R2 Service Pack 1

此问题的修补程序首次发布,即累积更新8。有关如何为 SQL Server 2008 R2 Service Pack 1 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2723743 SQL Server 2008 R2 Service Pack 1 的累积更新程序包8注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2008 R2 Service Pack 1 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2567616 在发布 SQL Server 2008 R2 Service Pack 1 之后发布的 SQL Server 2008 R2 版本

解决方法

要解决此问题,请将 MAXDOP = 1 查询提示选项添加到用于重新创建非聚集索引的查询。

状态

Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。