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

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

症状

请考虑以下情况:

  • 运行的 Microsoft SQL Server 应用程序已配置有分布式事务协调器(DTC)或多个活动结果集(MARS)事务。 例如,运行用于启动 DTC 或 MARS 事务的 Microsoft SQL Server Integration Services。

  • 将 批量加载 操作作为 DTC 或 MARS 事务的一部分启动到目标表。 批量加载操作的bulk INSERT语句中未指定FIRE_TRIGGERS选项。注意 批量加载操作运行批量插入语句。

  • 在运行第一个批量加载操作时,为另一个目标表启动另一个批量加载操作或标准数据操作语言(DML)操作。 这些并行操作位于同一个 DTC 或 MARS 事务中。 .

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

错误:595、严重级别:16、State:1Bulk 与另一个未完成的结果集一起运行应与 XACT_ABORT on 一起运行。

原因

出现此问题的原因是 SQL Server 错误地检测 MARS 死锁。 SQL Server 避免了在启动 MARS 或 DTC 事务时可能出现的死锁。 但是,SQL Server 不检查是否在BULK INSERT语句中指定了FIRE_TRIGGERS选项。 注意

  • 有关如何避免 SQL Server 中的 MARS 死锁的详细信息,请参阅 Microsoft 开发人员网络(MSDN)网站上 "SQL Server 2005 中的多个活动结果集(MARS)" 一节中的 "交错执行" 部分。有关 "SQL Server 2005 中的多个活动结果集(MARS)" 一文的详细信息,请访问以下 Microsoft 开发人员网络(MSDN)网站:

    "SQL Server 2005 中的多个活动结果集(MARS)" 文章

解决方案

累积更新信息

SQL Server 2008

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

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

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

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 版本

SQL Server 2008 Service Pack 2

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

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

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

状态

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

参考

有关 批量插入 语句的详细信息,请访问以下 MSDN 网站:

有关批量插入语句的常规信息有关 OLE DB 目标的详细信息,请访问以下 MSDN 网站:

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

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

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

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

需要更多帮助?

需要更多选项?

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

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

此信息是否有帮助?

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

谢谢您的反馈!

×