Sintomas
Suponha que você habilite o recurso de captura de dados de alteração (CDC) em uma tabela para executar uma verificação de log no Microsoft SQL Server. O parâmetro PollingInterval é convertido a partir de segundos (s) a horas (h) no Sys.sp_cdc_scan procedimento armazenado. No entanto, quando o parâmetro PollingInterval for maior que uma hora (>3600 s), você perceberá que o resultado convertido está incorreto.
declare @pollinginterval bigint, @seconds bigint, @minutes bigint, @hours bigint definir @pollinginterval = 3600 Selecione @seconds = @pollinginterval %60 selecionar @minutes = ((@pollinginterval-@seconds)/60) %60 selecionar @hours = (@pollinginterval-(@minutes * 60)-@seconds)/60 ---Próxima tentativa abaixo de linha em vez disso ---selecionar @hours = (@pollinginterval-(@minutes * 60)-@seconds)/60/60 selecionar @hours, @minutes @seconds
Resolução
Este problema foi corrigido nas seguintes atualizações cumulativas do SQL Server:
Atualização cumulativa 12 para SQL Server 2017
Atualização cumulativa 3 para SQL Server 2016 SP2
Atualização cumulativa 12 para SQL Server 2016 SP1
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 do SQL Server:
Atualização cumulativa mais recente do SQL Server 2017
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
Referências
Saiba mais sobre a terminologiaque a Microsoft usa para descrever atualizações de software.