KB4459220 - REMEDIERE: Apar rezultate incorecte atunci când efectuați conversia parametrului "pollinginterval" din secunde în ore în sys.sp_cdc_scan în SQL Server

Se aplică la
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2017 on Windows (all editions)

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.