Симптоми
Да предположим, че сте разрешили функцията за Записки на данни за промяна (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 използва за описване на актуализациите на софтуера.