Проблемы
Предположим, что вы включили функцию отслеживания измененных данных (CDC) в таблице для выполнения проверки журналов в Microsoft SQL Server. Параметр pollinginterval преобразуется из секунд (с) в часы (h) в sys.sp_cdc_scan хранимой процедуре. Однако если параметр pollinginterval превышает один час (>3600 с), вы заметите, что преобразованный результат неверен.
объявление @pollinginterval bigint, @seconds bigint, @minutes 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 2017
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Ссылки
Сведения о терминологии, которую корпорация Майкрософт использует для описания обновлений программного обеспечения.