SQLServer 错误 故障 处理 修复 支持远程

详细信息

Attribute
产品名称 SQL Server
事件 ID 3988
事件源 MSSQLSERVER
组件 SQLEngine
符号名称 XACT_UNSUPPORT_PARALLEL_TRAN2
消息正文 不允许启动新事务,因为有其他线程正在该会话中运行。

说明

如果执行的分布式查询联接 SQL Server 的远程实例承载的多个表,同时 XACT_ABORT 会话设置为“开”,则会出现此错误。 将向用户报告如下错误消息:

消息 3988,级别 16,状态 1,行 #
不允许启动新事务,因为有其他线程正在该会话中运行。

原因

当满足以下条件时,SQL Server 处理分布式查询 (DQ) 的方式存在一些设计限制:

  • SQL Server 联接一个远程 SQL Server 数据源的多个表。
  • 正在发出查询的会话未在分布式事务中登记。

在这种情况下,尝试运行查询可能会引发“说明”部分中提到的两个错误。

用户操作

若要解决此问题,请将分布式查询包含在“begin distributed transaction”语句中:

BEGIN DISTRIBUTED TRANSACTION
/*The actual Distributed Query goes next, outside of comments*/
COMMIT TRANSACTION

数据运维技术 » SQLServer 错误 故障 处理 修复 支持远程