Síntomas
Cambie el tipo de datos de una columna en una tabla de base de datos de ntext a nvarchar (Max) en un servidor que ejecute Microsoft SQL Server 2012, 2014 o 2016. Al actualizar la tabla agregando más de 4.000 registros, DBCC CHECKDB puede notificar errores similares a los siguientes:
Msj 8961, nivel 16, estado 1, lineNumber Error de tabla: objectId, indexID, partitionID, allocUnitID (tipo de datos LOB). El nodo de datos fuera de la fila en la página (pageId), la ranura 0, textID no coincide con su referencia de la página (pageId), ranura 0. Msj 8961, nivel 16, estado 1, lineNumber Error de tabla: objectId, indexID, partitionID, allocUnitID (tipo de datos LOB). El nodo de datos fuera de la fila en la página (pageId), la ranura 0, textID no coincide con su referencia de la página (pageId), ranura 0. MSG 8929, nivel 16, estado 1, lineNumberobjectId, indexID, partitionID, allocUnitID (escribir datos de la fila): se han encontrado errores en los datos fuera de la fila con el identificador que posee el registro de datos, identificado por RID = (RID) Resultados de DBCC para 'NombreTabla'. Hay 1 fila en 1 páginas para el objeto "TableName". CHECKTABLE encontró 0 errores de asignación y 3 errores de coherencia en la tabla 'TableName' (objectId). repair_allow_data_loss es el nivel mínimo de reparación para los errores encontrados por DBCC CHECKTABLE (DatabaseName. TableName). Ejecución de DBCC completada. Si hay mensajes de error de DBCC impresos, póngase en contacto con el administrador del sistema.
Resolución
Este problema se ha corregido en las siguientes actualizaciones acumulativas para SQL Server:
Actualización acumulativa 5 para SQL Server 2016 RTM
Actualización acumulativa 2 para SQL Server 2016 SP1
Actualización acumulativa 4 para SQL Server 2014 SP2
Actualización acumulativa 11 para SQL Server 2014 SP1
Actualización acumulativa 7 para SQL Server 2012 Service Pack 3
Cada nueva actualización acumulativa de SQL Server contiene todas las revisiones y correcciones de seguridad que se incluyeron en la actualización acumulativa anterior. Consulte las últimas actualizaciones acumulativas para SQL Server:
Actualización acumulativa más reciente de SQL Server 2016
Actualización acumulativa más reciente de SQL Server 2014
Actualización acumulativa más reciente de SQL Server 2012 SP3
Solución alternativa
Para evitar este problema después de cambiar el tipo de datos, establezca la opción tipos de valores grandes fuera de la fila en 1.
ALTER TABLE TableName ALTER COLUMN COLUMN_NAME nvarchar(max) NOT NULL
go
exec sp_tableoption 'TableName', 'large value types out of row', '1'
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "Se aplica a".
Referencias
Obtenga más información sobre la terminología que Microsoft usa para describir las actualizaciones de software.