Příznaky
Předpokládejme, že povolíte funkci Change Data Capture (CDC) v tabulce, aby se spustila kontrola protokolu v Microsoft SQL Server. Parametr pollinginterval je převeden ze sekund (s) na hodiny (h) v sys.sp_cdc_scan uložené proceduře. Pokud je však parametr pollinginterval větší než jedna hodina (>3600 s), všimnete si, že převedený výsledek je nesprávný.
Poznámka
deklarace @pollinginterval bigint, @seconds bigint, @minutes bigint, @hours bigint
set @pollinginterval = 3600
vybrat @seconds = @pollinginterval % 60
select @minutes = ((@pollinginterval - @seconds) / 60) % 60
select @hours = (@pollinginterval - (@minutes * 60) - @seconds) / 60
--- Místo toho další pokus pod řádkem
--- select @hours = (@pollinginterval - (@minutes * 60) - @seconds) / 60 /60
select @hours, @minutes, @seconds
Řešení
Tento problém je opravený v následujících kumulativních aktualizacích pro SQL Server:
Kumulativní aktualizace 12 pro SQL Server 2017
Kumulativní aktualizace 3 pro SQL Server 2016 SP2
Kumulativní aktualizace 12 pro SQL Server 2016 SP1
Kumulativní aktualizace 1 pro SQL Server 2014 SP3
Kumulativní aktualizace 14 pro SQL Server 2014 SP2
Informace o kumulativních aktualizacích pro SQL Server:
Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Podívejte se na nejnovější kumulativní aktualizace pro SQL Server:
Nejnovější kumulativní aktualizace pro SQL Server 2017
Nejnovější kumulativní aktualizace pro SQL Server 2016
Nejnovější kumulativní aktualizace pro SQL Server 2014
Stav
Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.
Reference
Podívejte se na informace o terminologii, kterou společnost Microsoft používá k popisování aktualizací softwaru.