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

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

症状

在 Microsoft SQL Server 2008 R2 SP2 或 Microsoft SQL Server 2012 中运行查询时,如果存在以下情况,则可能会收到错误的结果:

  • 查询对完整联接子句的结果使用交叉应用子句。

  • 通过在 完整的 JOIN 子句中调用表值用户定义的函数来提供表数据。

  • 函数接受列名称作为参数,并以表的形式返回结果。

例如,你可以运行类似于以下内容的查询:

SELECT * FROM tablename CROSS APPLY (    SELECT * FROM        (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'New') s1     FULL JOIN         (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'Old') s2     ON s1.nodeName = s2.nodeName    ) s  

注意 Microsoft SQL Server 2012 中不会出现此问题。

解决方案

累积更新信息

SQL Server 2012 累积更新7

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

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

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

SQL Server 2012 SP1 的累积更新3

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

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

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

SQL Server 2008 R2 SP2 的累积更新5

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

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

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

状态

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

解决方法

若要解决此问题,请使用 完整的 MERGE JOIN 子句,而不是 完整的 JOIN 子句。例如,您将 "症状" 部分中提及的查询更改为该查询,如下所示:

SELECT * FROM tablename CROSS APPLY (    SELECT * FROM        (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'New') s1     FULL MERGE JOIN         (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'Old') s2     ON s1.nodeName = s2.nodeName    ) s 

更多信息

有关如何使用 跨应用 子句的详细信息,请转到以下 Microsoft TechNet 网站:

有关如何使用跨应用子句的常规信息

需要更多帮助?

需要更多选项?

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

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

此信息是否有帮助?

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

谢谢您的反馈!

×