Questo articolo presenterà le basi per creare, lavorare e utilizzare le tabelle temporali in SQL Server.
Le tabelle di sistema di sistema sono state introdotte nello standard ANSI SQL 2011 e sono state disponibili come funzionalità in SQL Server 2016 e superiore.
A differenza di una tabella normale che può solo mostrare e funzionare con i dati attuali, le tabelle temporali consentono di visualizzare e lavorare anche con dati precedentemente eliminati. Come accennato, ciò è possibile a causa della capacità di una tabella temporale di tenere traccia delle modifiche apportate ai dati in una tabella.
La tabella contiene due colonne chiave: SyssstartTime e SysendTime. Queste due colonne vengono utilizzate per definire i dati esistenti e precedenti per ogni record in una tabella. È possibile utilizzare intervalli di tempo specifici per visualizzare come sono cambiati i dati in una tabella.
Crea una tabella temporale
Prima di poter creare una tabella temporale, deve soddisfare i seguenti requisiti:
Come creare una tabella temporale: T-SQL
Diamo un'occhiata a una semplice dimostrazione di creare una tabella temporale. Considera la query di esempio mostrata di seguito:
Crea la tabella DBO.my_temporal_table (Una volta eseguita la query sopra, il server SQL creerà la tabella con il nome specificato.
In SQL Server Management Studio, è possibile visualizzare una tabella di versione di sistema espandendo l'opzione tabelle nel database di destinazione:
Si noti che il server SQL genera automaticamente una tabella di cronologia con uno schema simile alla tabella versione del sistema. Tuttavia, presta attenzione alle colonne nella tabella della cronologia. Si noti che non hanno alcun vincolo.
Considera l'immagine mostrata di seguito:
Come vedrai, SQL Server genera una tabella di cronologia con un nome che segue un formato specifico. Per impostare un nome personalizzato per la tabella cronologia, specificarlo nell'istruzione Crea tabella come mostrato:
---Successivamente, se si espande l'opzione degli indici per la tabella della cronologia, si noti che SQL Server generato automaticamente un indice cluster:
Usando tabelle temporali
Proviamo la funzionalità delle tabelle temporali inserendo alcuni record nella tabella. Considera la query di esempio mostrata di seguito:
Inserisci in my_temporal_table (id, fname, e -mail, reparto)Una volta inseriti i dati di esempio nella tabella, possiamo interrogarlo come:
Seleziona * da my_temporal_table;Dovresti ottenere un output vicino a quello mostrato di seguito come
Per capire come funziona la tabella versione del sistema, eliminiamo e aggiorniamo le righe nella tabella:
Elimina da my_temporal_table dove dipartimento = 'database';Successivamente, interrogare i dati nella tabella principale:
Seleziona * da my_temporal_table;Se interroghi la tabella della cronologia, dovresti vedere la vecchia versione dei dati con i timestamp corretti.
Conclusione
Questa guida ha coperto il concetto di tabella versione temporale o di sistema in SQL Server. Utilizzando questa guida, sarai in grado di tracciare la cronologia dei dati utilizzando le tabelle temporali SQL Server. Speriamo che tu abbia trovato questo articolo utile. Dai un'occhiata a altri articoli di suggerimento Linux per suggerimenti e tutorial.