Sintomas
Depois de aplicar o SQL Server 2016 Service Pack 3 (SP3) ou SQL Server Atualização Cumulativa 2017 2017 (CU26) e executar um procedimento armazenado de limpeza de controle de alterações, sp_flush_commit_table_on_demand ou sp_flush_CT_internal_table_on_demand, ou se o controle de alterações de limpeza automática for executado, você receberá a seguinte mensagem de erro:
Msg 8114, Level 16, State 1, Procedure sp_add_ct_history, Line LineNumber
Error converting data type numeric to int.
Além disso, os seguintes erros podem ser registrados no log de SQL Server de erro:
DateTime spidNum Error: 22122, Severity: 16, State: 1.
DateTime spidNum Change Tracking autocleanup failed on side table of "table_name". If the failure persists, use sp_flush_CT_internal_table_on_demand to clean up expired records from its side table.
Depois de encontrar esse erro, alterar o controle de limpeza automática não pode limpar entradas da tabela lateral ou da tabela syscommittab.
Causa
SQL Server 2016 SP3 e SQL Server 2017 CU26 introduziram uma nova tabela, dbo. MSchange_tracking_history, e um novo procedimento armazenado, sys.sp_add_ct_history, para registrar o histórico de limpeza de controle de alterações. Esta tabela tem uma coluna, cleanup_version, que atualmente é declarada como datatype INT. O sys.sp_add_ct_history procedimento armazenado tem um parâmetro, @cleanup_version, que também é declarado como INT. Em um sistema ocupado que usa o controle de alterações, a versão de limpeza pode cruzar um intervalo de INT em um determinado intervalo. Em seguida, quando a limpeza de controle de alterações for executado, ele tentará inserir um valor BIGINT na coluna INT desta tabela. Isso gera o erro descrito na seção "Sintomas".
Resolução
Esse problema é corrigido nas seguintes atualizações cumulativas para SQL Server:
Atualização cumulativa 27 para SQL Server 2017
Cada nova atualização cumulativa para SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes para SQL Server:
Informações de hotfixes sob demanda:
Esse problema é corrigido no seguinte hotfix sob demanda para SQL Server:
Solução alternativa
Se você encontrar esse problema, reverta para a com build anterior desinstalando o SQL Server 2016 SP3 ou SQL Server 2017 CU26. A Microsoft está investigando ativamente esse problema e atualizará este artigo com mais informações e orientações adicionais quando essas informações estão disponíveis.
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 que a Microsoft usa para descrever atualizações de software.