KB4459220 – КОРЕКЦИЯ: Когато преобразувате параметъра "pollinginterval" от секунди в часове в sys.sp_cdc_scan в SQL Server възникват неправилни резултати

Отнася се за
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)

Симптоми

Да предположим, че сте разрешили функцията за Записки на данни за промяна (CDC) в таблица, за да се изпълни сканиране на регистрационни файлове в Microsoft SQL Server. Параметърът pollinginterval се конвертира от секунди (s) в часове (h) в sys.sp_cdc_scan съхранена процедура. Когато обаче параметърът pollinginterval е по-голям от един час (>3600 сек), ще забележите, че конвертираният резултат е неправилен.

Забележка

деклариране @pollinginterval на bigint, @seconds bigint, @minutes bigint, @hours bigint
  SET @pollinginterval = 3600
  select @seconds = @pollinginterval % 60
  select @minutes = ((@pollinginterval - @seconds) / 60) % 60
  select @hours = (@pollinginterval - (@minutes * 60) - @seconds) / 60
--- Следващ опит вместо това под реда
--- select @hours = (@pollinginterval - (@minutes * 60) - @seconds) / 60 /60
  Изберете @hours, @minutes, @seconds

Решение

Този проблем е решен в следните кумулативни актуализации за SQL Server:

Сборна актуализация 12 за SQL Server 2017

Сборна актуализация 3 за SQL Server 2016 SP2

Сборна актуализация 12 за SQL Server 2016 SP1

Сборна актуализация 1 за SQL Server 2014 SP3

Сборна актуализация 14 за SQL Server 2014 SP2

За кумулативните актуализации за SQL Server:

Всяка нова кумулативна актуализация за SQL Server съдържа всички актуални поправки и корекции на защитата, които са били включени в предишната кумулативна актуализация. Прегледайте последните кумулативни актуализации за SQL Server:

Последна сборна актуализация за SQL Server 2017

Последна сборна актуализация за SQL Server 2016

Последна сборна актуализация за SQL Server 2014

Състояние

Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.

Справки

Научете повече относно терминологията, която Microsoft използва за описване на актуализациите на софтуера.