KB3213240 - FIX: Alterar o tipo de dados e, em seguida, atualizar a tabela com mais de 4.000 registos causa corrupção na base de dados

Sintomas

Altera o tipo de dados de uma coluna numa tabela de bases de dados de ntext para nvarchar(máx) num servidor que está a executar o Microsoft SQL Server 2012, 2014 ou 2016. Quando atualizar a tabela adicionando mais de 4.000 registos, o DBCC CHECKDB pode reportar erros que se assemelham ao seguinte:

Msg 8961, Nível 16, Estado 1, LineNumber Erro de tabela: ObjectID, indexID,partitionID,allocUnitID (dados do tipo LOB). O nó de dados fora de linha na página(PageID),slot 0, textID não corresponde à sua referência a partir da página(PageID), ranhura 0. Msg 8961, Nível 16, Estado 1, LineNumber Erro de tabela: ObjectID, indexID,partitionID,allocUnitID (dados do tipo LOB). O nó de dados fora de linha na página(PageID),slot 0, textID não corresponde à sua referência a partir da página(PageID), ranhura 0. Msg 8929, Nível 16, Estado 1, LineNumberObjectID,indexID,partitionID,allocUnitID (dados do tipo in-row): Erros encontrados em dados fora de linha com ID propriedade de registo de dados identificados pela RID =(RID) DBCC resultados para 'TableName'. Existem 1 linhas em 1 páginas para objeto "TableName". CHECKTABLE encontrou 0 erros de atribuição e 3 erros de consistência no quadro 'TableName'(ObjectID). repair_allow_data_loss é o nível mínimo de reparação dos erros encontrados pela DBCC CHECKTABLE(DatabaseName.TableName). Execução do DBCC concluída. Se o DBCC imprimiu mensagens de erro, contacte o administrador do sistema.

Resolução

Esta emissão é corrigida nas seguintes atualizações cumulativas para o 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 todas as correções de hotfixes e correções de segurança que foram incluídas na atualização cumulativa anterior. Confira as últimas atualizações cumulativas do SQL Server:

Última atualização cumulativa para SQL Server 2016

Última atualização cumulativa para SQL Server 2014

Última atualização cumulativa para SQL Server 2012 SP3

Solução

Para contornar este problema depois de alterar o tipo de dados, desa um dos grandes tipos de valor fora da opção de linha para 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

A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".

Referências

Saiba mais sobre a terminologia que a Microsoft utiliza para descrever atualizações de software.

Precisa de mais ajuda?

Aumente os seus conhecimentos
Explore as formações
Seja o primeiro a obter novas funcionalidades
Aderir ao Microsoft insiders

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×