KB4459220 - CORREÇÃO: resultados incorretos ocorrem quando você converte o parâmetro "pollinginterval" de segundos para horas em sys.sp_cdc_scan em SQL Server

Aplica-se a
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2017 on Windows (all editions)

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.