使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

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

症状

在 Microsoft SQL Server 2008 R2 中,当运行使用 APPLY 运算符的复杂查询时,可能会收到不一致的结果。 注意 如果在查询中使用 "强制顺序 查询" 提示,则会在此情况下收到正确的结果。

原因

出现此问题的原因是,查询优化器为查询选择了不正确的执行计划。 查询优化器针对执行计划的物理运算符中的多列处理 GROUP BY谓词。 但是,该运算符将输出输出列表中的所有分组列,并且不会对所有这些列进行分组。 因此,查询可能会返回不正确的结果。 注意 流聚合运算符是一个物理运算符的示例。例如,查询优化器在内部通过 ColA、ColB子句在下表中生成 GROUP:

ColA

ColB

0

0

0

1

查询优化程序可能错误地生成同时返回ColAColB列的执行计划。 这些列按输出列表中的ColA列分组。 在此示例中,如果ColA列中的值为0,查询可能会在ColB列中随机返回01

解决方案

累积更新信息

SQL Server 2008 R2

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

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

981356 发布 SQL Server 2008 R2 后发布的 SQL Server 2008 R2 版本

状态

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

更多信息

若要验证是否遇到此问题,请查看有问题的查询的执行计划,然后检查组运算符。 例如,检查流聚合运算符、哈希聚合运算符、distinct 排序运算符和段运算符。 如果输出列的列表比分组列的列表长,则你遇到此问题。 

参考

有关 SQL Server 的增量服务模型的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

935897 从 SQL Server 团队提供的增量服务模型可提供报告问题的修补程序有关 SQL Server 更新的命名架构的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

822499Microsoft SQL Server 软件更新程序包的新命名架构有关软件更新术语的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

824684 用于描述 Microsoft 软件更新的标准术语的说明

需要更多帮助?

需要更多选项?

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

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×