Objawy
Załóżmy, że włączono funkcję zmiany Rejestrator danych (CDC) dla tabeli, aby uruchomić skanowanie dziennika w usłudze Microsoft SQL Server. Parametr pollinginterval jest konwertowany z sekund (s) na godziny (h) w procedurze składowanej sys.sp_cdc_scan . Jeśli jednak parametr pollinginterval jest większy niż jedna godzina (>3600 s), można zauważyć, że przekonwertowany wynik jest nieprawidłowy.
Uwaga
zadeklaruj @pollinginterval bigint, @seconds bigint, @minutes bigint @hours , bigint
zestaw @pollinginterval = 3600
select @seconds = @pollinginterval % 60
select @minutes = ((@pollinginterval - @seconds) / 60) % 60
select @hours = (@pollinginterval - (@minutes * 60) - @seconds) / 60
--- Zamiast tego następna próba poniżej wiersza
--- select @hours = (@pollinginterval - (@minutes * 60) - @seconds) / 60 /60
wybierz , @hours@minutes,@seconds
Rozwiązanie
Ten problem został rozwiązany w następujących aktualizacjach zbiorczych dla programu SQL Server:
Aktualizacja zbiorcza 12 dla programu SQL Server 2017
Aktualizacja zbiorcza 3 dla programu SQL Server 2016 z dodatkiem SP2
Aktualizacja zbiorcza 12 dla programu SQL Server 2016 z dodatkiem SP1
Aktualizacja zbiorcza 1 dla programu SQL Server 2014 z dodatkiem SP3
Aktualizacja zbiorcza 14 dla programu SQL Server 2014 z dodatkiem SP2
Informacje o aktualizacjach zbiorczych programu SQL Server:
Każda nowa aktualizacja zbiorcza programu SQL Server zawiera wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji skumulowanej. Sprawdź najnowsze aktualizacje zbiorcze dla programu SQL Server:
Najnowsza aktualizacja zbiorcza dla programu SQL Server 2017
Najnowsza aktualizacja zbiorcza dla programu SQL Server 2016
Najnowsza aktualizacja zbiorcza dla programu SQL Server 2014
Stan
Firma Microsoft potwierdziła, że jest to problem dotyczący produktów firmy Microsoft wymienionych w sekcji „Dotyczy”.
Źródła informacji
Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.