Ten artykuł będzie podstawą do tworzenia, pracy i używania tabel czasowych w SQL Server.
Systemowe tabele zostały wprowadzone w standardzie ANSI SQL 2011 i były dostępne jako funkcja w SQL Server 2016 i powyżej.
W przeciwieństwie do normalnej tabeli, która może tylko pokazywać i pracować z bieżącymi danymi, tabele czasowe pozwalają przeglądać i pracować nawet z wcześniej usuniętymi danymi. Jak wspomniano, jest to możliwe ze względu na zdolność tabeli czasowej do śledzenia zmian wprowadzonych w danych w tabeli.
Tabela zawiera dwie kluczowe kolumny: SysstartTime i Sysendtime. Te dwie kolumny są używane do zdefiniowania istniejących i poprzednich danych dla każdego rekordu w tabeli. Możesz użyć określonych odstępów czasu, aby zobaczyć, jak zmieniły się dane w tabeli.
Utwórz tabelę czasową
Zanim utworzysz tabelę czasową, musi spełniać następujące wymagania:
Jak utworzyć tabelę czasową: T-SQL
Spójrzmy na prostą demonstrację tworzenia stolika czasowego. Rozważ przykładowe zapytanie pokazane poniżej:
Utwórz tabelę DBO.my_temporal_table (Po uruchomieniu powyższego zapytania serwer SQL utworzy tabelę o określonej nazwie.
W SQL Server Management Studio możesz wyświetlić tabelę w wersji systemowej, rozszerzając opcję tabel w docelowej bazie danych:
Zauważ, że SQL Server automatycznie generuje tabelę historii z podobnym schematem jak tabela wersji systemowej. Zwróć jednak uwagę na kolumny w tabeli historii. Zauważ, że nie mają żadnych ograniczeń.
Rozważ obraz pokazany poniżej:
Jak zobaczysz, SQL Server generuje tabelę historii pod nazwą po określonym formacie. Aby ustawić niestandardową nazwę tabeli historii, określ w instrukcji Utwórz tabelę, jak pokazano:
---Następnie, jeśli rozszerzysz opcję indeksu dla tabeli historii, zauważysz, że SQL Server automatycznie wygenerował indeks klastrowy:
Za pomocą tabel czasowych
Przetestujmy funkcjonalność tabel czasowych, wkładając kilka rekordów do tabeli. Rozważ przykładowe zapytanie pokazane poniżej:
Wstaw do my_temporal_table (id, fname, e -mail, dział)Po wprowadzeniu przykładowych danych do tabeli możemy je zapytać jako:
Wybierz * z my_temporal_table;Powinieneś uzyskać wyjście blisko tego pokazanego poniżej
Aby zrozumieć, jak działa tabela wersji systemowej, usuńmy i zaktualizujmy wiersze w tabeli:
Usuń z my_temporal_table, gdzie dział = „baza danych”;Następnie zapytaj dane w głównej tabeli:
Wybierz * z my_temporal_table;Jeśli zapytasz o tabelę historii, powinieneś zobaczyć starą wersję danych z odpowiednimi znacznikami czasu.
Wniosek
Ten przewodnik obejmował koncepcję tabeli czasowej lub systemowej na serwerze SQL. Korzystając z tego przewodnika, będziesz w stanie śledzić historię danych za pomocą tabel czasowych SQL Server. Mamy nadzieję, że ten artykuł jest pomocny. Sprawdź więcej artykułów z Linux, aby uzyskać wskazówki i samouczki.