Ongelman ilmenemistapa
Oletetaan, että otat Change Data Capture (CDC) -ominaisuuden käyttöön taulukossa lokitarkistuksen suorittamiseksi Microsoft SQL Server. PollingIntervals-parametri muunnetaan sekunneista (s) tunneiksi (h) sys.sp_cdc_scan tallennetussa toimintosarjassa. Jos pollingrange-parametri on suurempi kuin yksi tunti (>3600 s), huomaat, että muunnettu tulos on virheellinen.
Huomautus
Määritä @pollinginterval isokokonaisluku; @seconds isokokonaisluku; @minutes isokokonaisluku; @hours isokokonaisluku
set @pollinginterval = 3600
valitse @seconds = @pollinginterval % 60
select @minutes = ((@pollinginterval - @seconds) / 60) % 60
select @hours = (@pollinginterval - (@minutes * 60) - @seconds) / 60
--- Seuraava yritys sen sijaan rivin alapuolelle
--- select @hours = (@pollinginterval - (@minutes * 60) - @seconds) / 60 /60
valitse @hours, @minutes, @seconds
Ratkaisu
Tämä ongelma on korjattu seuraavissa SQL Server kumulatiivisissa päivityksissä:
SQL Server 2017:n kumulatiivinen päivitys 12
SQL Server 2016 SP2:n kumulatiivinen päivitys 3
SQL Server 2016 SP1:n kumulatiivinen päivitys 12
SQL Server 2014 SP3:n kumulatiivinen päivitys 1
SQL Server 2014 SP2:n kumulatiivinen päivitys 14
Tietoja SQL Server:n kumulatiivisista päivityksistä:
Jokainen uusi SQL Server -kumulatiivinen päivitys sisältää kaikki edelliseen kumulatiiviseen päivitykseen sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. Tutustu SQL Serverin uusimpiin kumulatiivisiin päivityksiin:
SQL Server 2017:n uusin kumulatiivinen päivitys
SQL Server 2016:n uusin kumulatiivinen päivitys
SQL Server 2014:n uusin kumulatiivinen päivitys
Tila
Microsoft on vahvistanut tämän olevan ongelma niissä Microsoftin tuotteissa, jotka ovat listattuna Koskee seuraavia tuotteita -osiossa.
Viitteet
Lue tietoja Microsoftin ohjelmistopäivitystensä kuvaamiseen käyttämästä sanastosta.