Síntomas
Cuando ejecuta una consulta que contiene datos de objetos grandes (LOB) para cargarlos en una variable de Transact-SQL en Microsoft SQL Server 2008, Microsoft SQL Server 2012 o Microsoft SQL Server 2008 R2, se producen daños en los datos. Por ejemplo, ejecute la consulta siguiente para copiar datos XML de una columna de base de datos a una variable XML: Declare @OUTXML as XMLSELECT @OUTXML = DataXml FROM Table_1 WHERE id=1 En esta situación, la instrucción Select se ejecuta cuando otros subprocesos intentan actualizar la misma columna XML. Este comportamiento puede dañar los datos. Además, recibe uno de los siguientes mensajes de error cuando realiza cualquier operación de lectura y escritura en la columna XML dañada:
-
El tipo de datos XML está dañado.
-
Final de archivo inesperado.
Notas
-
El problema se produce normalmente durante altas operaciones de carga simultánea.
-
Al usar un agente de lector del registro para leer los datos XML dañados de una tabla que forma parte de una lista de artículos de la publicación para la replicación transaccional, recibe el siguiente mensaje de error:
El tipo de datos XML está dañado. (Origen: MSSQLServer, número de error: 6611)
Causa
Este problema se produce porque se libera un bloqueo en la columna de datos LOB antes de que se copien los datos LOB de la columna de la base de datos a la variable de tipo de datos LOB. Cualquier consulta simultánea puede actualizar los mismos datos LOB antes de que se complete el proceso de copia durante el proceso de copia. Por lo tanto, se dañan los datos.
Resolución
Información sobre la actualización acumulativa
Actualización acumulativa 7 para SQL Server 2012
La corrección para este problema se publicó por primera vez en la actualización acumulativa 7. Para obtener más información sobre cómo obtener este paquete de actualización acumulativa para SQL Server 2012, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2823247 Paquete de actualización acumulativa 7 para SQL Server 2012Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2012. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2692828 Las compilaciones de SQL Server 2012 que se publicaron después de que se publicó SQL Server 2012
Actualización acumulativa 12 para SQL Server 2008 R2 Service Pack 1
La corrección para este problema se publicó por primera vez en la actualización acumulativa 12. Para obtener más información sobre cómo obtener este paquete de actualización acumulativa para SQL Server 2008 R2 Service Pack 1, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2828727 Paquete de actualización acumulativa 12 para SQL Server 2008 R2 Service Pack 1Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008 R2 Service Pack 1. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2567616 Las compilaciones de SQL Server 2008 R2 que se publicaron después de que se publicó SQL Server 2008 R2 Service Pack 1
Actualización acumulativa 10 para SQL Server 2008 Service Pack 3
La corrección para este problema se publicó por primera vez en la actualización acumulativa 10. Para obtener más información sobre cómo obtener este paquete de actualización acumulativa para SQL Server 2008 Service Pack 3, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2814783 Paquete de actualización acumulativa 10 para SQL Server 2008 Service Pack 3Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008 Service Pack 3. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2629969 Las compilaciones de SQL Server 2008 que se lanzaron después de que se publicó SQL Server 2008 Service Pack 3
Actualización acumulativa 5 para SQL Server 2008 R2 Service Pack 2 (SP2)
La corrección para este problema se publicó por primera vez en la actualización acumulativa 5. Para obtener más información sobre cómo obtener este paquete de actualización acumulativa para SQL Server 2008 R2 S2008 R2 SP2, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2797460 Paquete de actualización acumulativa 5 para SQL Server 2008 R2 S2008 R2 SP2Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de SQL Server 2008 R2 S2008 R2 SP2. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2730301 Las compilaciones de SQL Server 2008 R2 que se publicaron después de que se publicó SQL Server 2008 R2 Service Pack 2
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "Se aplica a".