| Termin | Definicja |
|---|---|
| SysEndTime | SysEndTime to kolumna tabeli temporalnej wskazująca moment zakończenia ważności danej wersji wiersza. SysEndTime w tabeli temporalnej SQL ServerSysEndTime to zwyczajowa nazwa kolumny przechowującej końcową granicę okresu obowiązywania wersji wiersza w tabeli temporalnej programu Microsoft SQL Server. Sama nazwa nie jest słowem kluczowym ani specjalnym identyfikatorem wymaganym przez silnik. O jej roli decyduje definicja okresu systemowego, na przykład Wartość SysEndTime wskazuje moment, od którego dana wersja nie jest już aktualną wersją obowiązującą dla zapytań dotyczących czasu systemowego. SQL Server traktuje koniec okresu jako granicę wyłączną. Jeżeli więc jedna wersja obowiązuje do chwili zapisanej w SysEndTime, następna wersja może obowiązywać od dokładnie tego samego momentu, bez nakładania się okresów. Taki model pozwala odtworzyć stan tabeli z punktu w przeszłości oraz prześledzić kolejne zmiany tego samego wiersza. Typ danych i znaczenie wartości granicznychKolumny początku i końca okresu systemowego w tabeli temporalnej SQL Server muszą używać typu Dla aktualnych wierszy SQL Server zwykle zapisuje w kolumnie końca okresu wartość Znaczniki czasu systemowego są ustalane przez SQL Server w ramach obsługi transakcji. Dla tabel system-versioned temporal czas rozpoczęcia transakcji jest rejestrowany w standardzie UTC i służy do oznaczania momentu zmian wersji. Z tego powodu wartości SysEndTime należy interpretować jako czas systemowy silnika, a nie jako lokalny czas ustawiony na komputerze użytkownika. Przy prezentowaniu danych w aplikacji trzeba świadomie wykonać konwersję do właściwej strefy czasowej, jeżeli interfejs ma pokazywać godziny lokalne. Wykorzystanie SysEndTime w zapytaniachKolumny SysEndTime nie trzeba odczytywać ręcznie, aby pobrać historyczny stan danych. SQL Server udostępnia składnię Inne warianty tej składni umożliwiają pobieranie zmian z przedziału czasu. Przy analizie kolejnych wersji nie należy zakładać, że SysEndTime identyfikuje pojedynczą zmianę albo użytkownika, który ją wykonał. Kolumna opisuje wyłącznie czasową ważność wersji. Informacje o autorze operacji, źródle zmiany lub przyczynie modyfikacji wymagają osobnych kolumn audytowych i mechanizmów aplikacyjnych. Temporalne wersjonowanie pozwala odtworzyć stan danych, lecz samo w sobie nie zastępuje pełnego dziennika audytowego. Diagnostyka tabel temporalnych i skutki błędnej konfiguracjiPodczas diagnostyki tabeli temporalnej warto sprawdzić, czy SysEndTime jest rzeczywiście oznaczone jako kolumna końca okresu, czy ma typ Nieprawidłowe ręczne modyfikowanie schematu, zamiana typu danych albo usunięcie powiązania z definicją okresu może uniemożliwić działanie wersjonowania lub prowadzić do błędnej interpretacji historii. Podobny problem powstaje, gdy aplikacja porównuje czasy jako lokalne, mimo że SQL Server zapisuje znaczniki systemowe w UTC. W praktyce należy również kontrolować indeksy tabeli bieżącej i historii, ponieważ zapytania używające W środowisku serwisowym analiza SysEndTime może pomóc ustalić, czy problem wynika z aktualnego stanu rekordu, czy z wcześniejszej modyfikacji danych. Należy jednak zachować spójność między tabelą główną a tabelą historii i interpretować znaczniki czasu razem z transakcjami, które je utworzyły. Jeżeli historia została wyłączona, usunięta lub zmieniona poza kontrolowanym procesem administracyjnym, odtworzenie kompletnego przebiegu zmian może być niemożliwe. |