Sintomas
Suponha que você use replicação transacional no Microsoft SQL Server 2008 e há uma consulta atualização em execução na publicação. Quando você atualiza o SQL Server para o SQL Server 2012 ou SQL Server 2014 e a consulta atualização não é distribuída antes da atualização, o Log Reader Agent pode falhar com o seguinte erro:
Nota
<Date><Time> Publisher: {call sp_replcmds (500, 0, 0, , 0, 500000)}
<Date><Time> Status: 0, código: 20011, texto: 'O processo não pôde executar 'sp_replcmds' no '<Nome do editor>'.'.
<Data><Hora> O processo não pôde executar 'sp_replcmds' em '<Nome do editor>'.
<Data><Hora> Estado do Agente Repl: 6
<Date><Time> Status: 0, código: 542, texto: 'Foi encontrado um valor datetime inválido. O valor excede o ano 9999.».
<Date><Time> Status: 0, código: 3621, texto: 'A declaração foi encerrada.'.
<Date><Time> Status: 0, código: 22037, texto: 'O processo não pôde executar 'sp_replcmds' em '<Nome do editor>'.'.
Mesmo que esse problema não tenha acontecido, os registros de log atualizados para instruções de atualização ainda podem ser mal interpretados pelo Log Reader Agent e o seguinte erro pode surgir no Distribution Agent:
Nota
515 Não é possível inserir o valor NULL na coluna '<Nome da Coluna>', tabela '<Nome> da Tabela'; a coluna não permite nulos. A ATUALIZAÇÃO falha.
Nota
- Diferentes tipos de dados e restrições podem causar erros diferentes a serem relatados, e esse problema até pode causar a não convergência.
- O problema ocorre quando atualiza do SQL Server 2008 ou SQL Server 2008 R2 para o SQL Server 2012 ou SQL Server 2014.
Resolução
Se o erro "515 Não é possível inserir o valor NULL na coluna '<Nome> da Coluna', tabela '<Nome> da Tabela'; coluna não permite nulos. UPDATE fails" no Distribution Agent ocorreu, deve reinicializar a replicação. Esta correção não corrige este erro. Para evitar este erro, deve desativar o Agente Leitor de Registos antes da atualização, atualizar até ao fim para esta correção e, em seguida, reativar o Agente Leitor de Logs.
O problema foi corrigido na atualização cumulativa seguinte do SQL Server.
Atualização Cumulativa 2 para SQL Server 2012 SP2 /en-us/help/2983175
Atualização cumulativa 3 para SQL Server 2014 /pt-pt/help/2984923
Atualização cumulativa 11 para SQL Server 2012 SP1 /en-us/help/2975396
Acerca das atualizações cumulativas para SQL Server
Cada nova atualização cumulativa para SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Consulte as atualizações cumulativas mais recentes para SQL Server:
- Atualização cumulativa mais recente para o SQL Server 2012 SP2
- Atualização cumulativa mais recente para o SQL Server 2014
- Atualização cumulativa mais recente para o SQL Server 2012 SP1
Estado
A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".