MSSQLSERVER_3989
Se aplica a:SQL Server
Detalles
Atributo | Value |
---|---|
Nombre de producto | SQL Server |
Id. de evento | 3989 |
Origen de eventos | MSSQLSERVER |
Componente | SQLEngine |
Nombre simbólico | XACT_UNSUPPORT_PARALLEL_TRAN3 |
Texto del mensaje | No se permite iniciar la nueva solicitud porque debe llegar con un descriptor de transacción válido. |
Explicación
Este error se produce al ejecutar una consulta distribuida que combina varias tablas hospedadas por instancias remotas de SQL Server mientras la configuración de sesión XACT_ABORT
está ACTIVADA. El usuario recibe un mensaje de error similar al siguiente:
Mensaje 3989, nivel 16, estado 1, n.º de línea
No se permite iniciar la nueva solicitud porque debe llegar con un descriptor de transacción válido.
Causa
Hay algunas limitaciones de diseño en la forma en que SQL Server controla las consultas distribuidas (DQ) cuando se cumplen las condiciones siguientes:
- SQL Server combina varias tablas de un origen de datos SQL Server remoto.
- La sesión que emite la consulta no está dada de alta en una transacción distribuida.
En esta situación, un intento de ejecutar la consulta puede producir cualquiera de los dos errores que se mencionan en la sección Explicación.
Acción del usuario
Para solucionar el problema, incluya la consulta distribuida en una instrucción "begin distributed transaction":
BEGIN DISTRIBUTED TRANSACTION
/*The actual Distributed Query goes next, outside of comments*/
COMMIT TRANSACTION
Comentarios
https://aka.ms/ContentUserFeedback.
Proximamente: Ao longo de 2024, retiraremos gradualmente GitHub Issues como mecanismo de comentarios sobre o contido e substituirémolo por un novo sistema de comentarios. Para obter máis información, consulte:Enviar e ver os comentarios