Sintomas
Você altera o tipo de dados de uma coluna em uma tabela de banco de dados de ntext para nvarchar (max) em um servidor que está executando o Microsoft SQL Server 2012, 2014 ou 2016. Quando você atualizar a tabela adicionando mais de 4.000 registros, DBCC CHECKDB poderá relatar erros semelhantes aos seguintes:
MSG 8961, nível 16, estado 1, LineNumber Erro de tabela: ObjectID, IndexID, PartitionID, allocUnitID (digite dados LOB). O nó de dados fora da linha na página (PageId), slot 0, textoid não corresponde à referência da página (PageId), slot 0. MSG 8961, nível 16, estado 1, LineNumber Erro de tabela: ObjectID, IndexID, PartitionID, allocUnitID (digite dados LOB). O nó de dados fora da linha na página (PageId), slot 0, textoid não corresponde à referência da página (PageId), slot 0. MSG 8929, nível 16, estado 1,ObjectID ObjectID, IndexID, PartitionID, allocUnitID (digite dados na linha): erros encontrados em dados fora da linha com ID de Propriedade do registro de dados identificadas por RID = (RID) Resultados de DBCC para 'tablenamename'. Há 1 fileira em 1 página para o objeto "tablenamename". CHECKtable encontrou 0 erros de alocação e 3 erros de consistência na tabela 'tablenamename(ObjectID). repair_allow_data_loss é o nível de reparo mínimo para os erros encontrados por DBCC CHECKtable (DatabaseName. TableName). Execução do DBCC concluída. Se mensagens de erro de DBCC impressas, entre em contato com o administrador do sistema.
Resolução
Esse problema foi corrigido nas seguintes atualizações cumulativas do SQL Server:
Atualização cumulativa 5 para SQL Server 2016 RTM
Atualização cumulativa 2 para SQL Server 2016 SP1
Atualização cumulativa 4 para SQL Server 2014 SP2
Atualização cumulativa 11 para SQL Server 2014 SP1
Atualização cumulativa 7 para SQL Server 2012 Service Pack 3
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e correções de segurança que foram incluídos na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes do SQL Server:
Atualização cumulativa mais recente do SQL Server 2016
Solução alternativa
Para contornar esse problema após alterar o tipo de dados, defina a opção tipos de valor grande fora da linha como 1.
ALTER TABLE TableName ALTER COLUMN COLUMN_NAME nvarchar(max) NOT NULL
go
exec sp_tableoption 'TableName', 'large value types out of row', '1'
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
Referências
Saiba mais sobre a terminologia usada pela Microsoft para descrever atualizações de software.