Simptome
Să presupunem că activați caracteristica Change Data Captură (CDC) într-un tabel pentru a rula o scanare de jurnal în Microsoft SQL Server. Parametrului pollinginterval i se efectuează conversia din secunde (s) în ore (h) în sys.sp_cdc_scan procedură stocată. Cu toate acestea, atunci când parametrul pollinginterval este mai mare de o oră (>3600 s), observați că rezultatul convertit este incorect.
Notă
Declare @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
--- Următoarea încercare în schimb sub linia de sub linie
--- select @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
Actualizarea cumulativă 1 pentru SQL Server 2014 SP3
Actualizarea cumulativă 14 pentru SQL Server 2014 SP2
Despre actualizările cumulative pentru SQL Server:
Fiecare actualizare cumulativă nouă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu 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 care sunt listate în secțiunea „Se aplică la”.
Referințe
Aflați despre terminologia pe care o utilizează Microsoft pentru a descrie actualizările de software.