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 преобразуется из секунд (с) в часы (h) в sys.sp_cdc_scan хранимой процедуре. Однако если параметр pollinginterval превышает один час (>3600 с), вы заметите, что преобразованный результат неверен.

Примечание

объявление @pollinginterval bigint, @seconds bigint, @minutes bigint, bigint, @hours bigint
  set @pollinginterval = 3600
  выберите @seconds = @pollinginterval % 60
  select @minutes = ((@pollinginterval - @seconds) / 60) % 60
  select @hours = (@pollinginterval - (@minutes * 60) - @seconds) / 60
--- следующая попытка под строкой
--- выбрать @hours = (@pollinginterval - (@minutes * 60) - @seconds) / 60 /60
  выберите @hours, @minutes, @seconds

Решение

Эта проблема устранена в следующих накопительных обновлениях для SQL Server:

Накопительный пакет обновления 12 для SQL Server 2017 г.

Накопительный пакет обновления 3 для SQL Server 2016 с пакетом обновления 2 (SP2)

Накопительный пакет обновления 12 для SQL Server 2016 с пакетом обновления 1 (SP1)

Накопительный пакет обновления 1 для SQL Server 2014 с пакетом обновления 3 (SP3)

Накопительный пакет обновления 14 для SQL Server 2014 с пакетом обновления 2 (SP2)

Сведения о накопительных обновлениях для SQL Server:

Каждое новое накопительное обновление для SQL Server содержит все исправления и все исправления для системы безопасности, которые были включены в предыдущее накопительное обновление. Ознакомьтесь с последними накопительными обновлениями для SQL Server:

Последнее накопительное обновление для SQL Server 2017 г.

Последнее накопительное обновление для SQL Server 2016 г.

Последнее накопительное обновление для SQL Server 2014 г.

Состояние

Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».

Ссылки

Узнайте о терминологии, используемой корпорацией Майкрософт для описания обновлений программного обеспечения.