Simptome
Să presupunem că activați caracteristica Modificare captură de date (CDC) pe un tabel pentru a rula o scanare de jurnal în Microsoft SQL Server. Parametrul de intervaloare pentru sondaje este convertit de la secunde (s) la ore (h) în sys.sp_cdc_scan procedură stocată. Cu toate acestea, atunci când parametrul de intervalval de sondaje este mai mare de o oră (>3600 s), observați că rezultatul convertit este incorect.
declare @pollinginterval bigint, @seconds bigint, @minutes bigint, @hours bigint
setați @pollinginterval = 3600
selectați @seconds = @pollinginterval % 60
select @minutes = ((@pollinginterval - @seconds) / 60) % 60
select @hours = (@pollinginterval - (@minutes * 60) - @seconds) / 60
--- În schimb
, următoarea încercare sub linie
--- selectați @hours = (@pollinginterval - (@minutes * 60) - @seconds) / 60 /60
selectați @hours, @minutes @seconds
Rezolvare
Această problemă este remediată în următoarele actualizări cumulative pentru SQL Server:
Actualizarea cumulativă 12 pentru SQL Server 2017
Actualizarea cumulativă 3 pentru SQL Server 2016 SP2
Actualizarea cumulativă 12 pentru SQL Server 2016 SP1
Fiecare actualizare cumulativă nouă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în actualizarea cumulativă anterioară. Consultați cele mai recente actualizări cumulative pentru SQL Server:
Cea mai recentă actualizare cumulativă pentru SQL Server 2017
Cea mai recentă actualizare cumulativă pentru SQL Server 2016
Cea mai recentă actualizare cumulativă pentru SQL Server 2014
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.
Referințe
Aflați despre terminologiape care o utilizează Microsoft pentru a descrie actualizările de software.