MSSQLSERVER_3989
适用范围:SQL Server
详细信息
Attribute | 值 |
---|---|
产品名称 | SQL Server |
事件 ID | 3989 |
事件来源 | MSSQLSERVER |
组件 | SQLEngine |
符号名称 | XACT_UNSUPPORT_PARALLEL_TRAN3 |
消息正文 | 不允许启动新请求,因为该请求应具有有效的事务描述符。 |
说明
执行分布式查询时,会在会话设置为 ON 时联接 SQL Server 远程实例托管的多个表时XACT_ABORT
发生此错误。 将向用户报告如下错误消息:
消息 3989,级别 16,状态 1,行 #
不允许启动新请求,因为该请求应具有有效的事务描述符。
原因
当满足以下条件时,SQL Server 处理分布式查询(DQs)的方式存在一些设计限制:
- SQL Server 联接一个远程 SQL Server 数据源的多个表。
- 正在发出查询的会话未在分布式事务中登记。
在这种情况下,尝试运行查询可能会引发“说明”部分中提到的两个错误。
用户操作
若要解决此问题,请将分布式查询包含在“begin distributed transaction”语句中:
BEGIN DISTRIBUTED TRANSACTION
/*The actual Distributed Query goes next, outside of comments*/
COMMIT TRANSACTION