Симптоми
Да предположим, че сте разрешили функцията за промяна на събирането на данни (CDC) на таблица, за да изпълните сканиране на регистрационни файлове в Microsoft SQL Server. Параметърът pollinginterval се конвертира от секунди (s) в часове (h) в sys.sp_cdc_scan съхранена процедура. Обаче когато параметърът pollinginterval е по-голям от един час (>3600 s), забелязвате, че конвертираният резултат е неправилен.
декларира @pollinginterval bigint, @seconds bigint, @minutes bigint, @hours bigint
set @pollinginterval = 3600
select @seconds = @pollinginterval % 60
select @minutes = ((@pollinginterval - @seconds) / 60) % 60
изберете @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 SP2
Кумулативна актуализация 12 за SQL Server 2016 SP1
Всяка нова кумулативна актуализация за SQL Server съдържа всички горещи поправки и всички корекции на защитата, които са били включени в предишната кумулативна актуализация. Прегледайте най-новите кумулативни актуализации за SQL Server:
Най-нова кумулативна актуализация за SQL Server 2017
Статут
Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са изброени в раздела "Отнася се за".
Препратки
Научете повече за терминологията, която Microsoft използва за описване на актуализациите на софтуера.