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

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

症状

请考虑以下情况:

  • 你的客户端应用程序在 Microsoft SQL Server 2008 R2 或 Microsoft SQL Server 2012 中运行查询。

  • 查询在路径模式中使用FOR XML子句。

  • 该查询将运行 SET NO_BROWSETABLE ON 命令以启用 NO_BROWSETABLE 设置。

在这种情况下,查询不会运行。 此外,你将在客户端应用程序上收到以下错误消息,并在 SQL 错误日志中生成小型转储文件。

消息0、级别11、状态0、行0A 当前命令上出现严重错误。 应丢弃结果(如果有)。消息0、级别20、状态0、行0A 当前命令上出现严重错误。 应丢弃结果(如果有)。

注意

  • 不会编译用于运行查询的查询计划。

  • 启动 SQL Server 配置文件时,失败的查询没有事件探查器事件。

  • 出现此问题时,SQL Server 服务间歇关闭。

原因

出现此问题的原因是 SQL Server algebrizer 中的内部错误。 当 SQL Server 尝试将从联接运算符节点的一侧提取的列添加到联接运算符节点的另一侧时,会出现此问题。 因此,创建了无效的 algebrizer 树,因为联接运算符节点一侧定义的列在联接运算符节点的另一侧不可见。

解决方案

累积更新信息

SQL Server 2012

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

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

2692828 在 SQL Server 2012 发布后发布的 SQL Server 2012 版本 必须将 SQL Server 2012 修补程序应用到 SQL Server 2012 的安装。

SQL Server 2008 R2 Service Pack 2

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

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

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

SQL Server 2008 R2 SP1 的累积更新包7

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

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

2567616 发布 SQL Server 2008 R2 SP1 后发布的 SQL Server 2008 R2 版本 为特定 SQL Server service pack 创建 Microsoft SQL Server 2008 R2 修补程序。 必须将 SQL Server 2008 R2 Service Pack 1 修补程序应用到 SQL Server 2008 R2 Service Pack 1 的安装。 默认情况下,SQL Server service pack 中提供的任何修补程序都包含在下一个 SQL Server service pack 中。

状态

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

解决方法

要解决此问题,请使用下列方法之一。

方法 1

不要在路径模式中使用FOR XML子句。

方法 2

运行以下命令以禁用 " NO_BROWSETABLE " 设置:

设置 NO_BROWSETABLE 关闭

参考

有关浏览模式的详细信息,请转到以下 MSDN 网站:

有关浏览模式的常规信息有关如何对 FOR XML 子句使用路径模式的详细信息,请转到以下 MSDN 网站:

如何对 FOR XML 子句使用路径模式

需要更多帮助?

需要更多选项?

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

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

此信息是否有帮助?

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

谢谢您的反馈!

×