Sintomas
Suponha que você habilite o recurso CDC (Captura de Dados de Alteração) em uma tabela para executar uma verificação de log no Microsoft SQL Server. O parâmetro pollinginterval é convertido de segundos (s) para horas (h) no procedimento armazenado sys.sp_cdc_scan . No entanto, quando o parâmetro pollinginterval é maior que uma hora (>3600 s), você observa que o resultado convertido está incorreto.
Observação
declarar @pollinginterval bigint, @seconds bigint, @minutes bigint, @hours bigint
set @pollinginterval = 3600
Selecionar @seconds = @pollinginterval % 60
select @minutes = ((@pollinginterval - @seconds) / 60) % 60
select @hours = (@pollinginterval - (@minutes * 60) - @seconds) / 60
--- Próxima tentativa abaixo da linha em vez disso
--- select @hours = (@pollinginterval - (@minutes * 60) - @seconds) / 60 /60
SELECT @hours, @minutes, @seconds
Resolução
Esse problema é corrigido nas seguintes atualizações cumulativas para o SQL Server:
Atualização cumulativa 12 para o SQL Server 2017
Atualização cumulativa 3 para o SQL Server 2016 SP2
Atualização cumulativa 12 para o SQL Server 2016 SP1
Atualização cumulativa 1 para SQL Server 2014 SP3
Atualização cumulativa 14 para o SQL Server 2014 SP2
Sobre atualizações cumulativas para o SQL Server:
Cada nova atualização cumulativa do 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 o SQL Server:
Atualização cumulativa mais recente do SQL Server 2017
Atualização cumulativa mais recente do SQL Server 2016
Atualização cumulativa mais recente do SQL Server 2014
Status
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".
Referências
Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.