2016-05-11 15 views
4

Ich suche nach temporären Tabellen für SQL Server 2016 und kann keine effiziente Methode zum Abfragen aller historischen Datensätze finden, die jetzt gelöscht werden.Was ist der beste Weg, gelöschte Datensätze mit temporären SQL Server 2016-Tabellen abzufragen?

Ich bevorzuge nicht zu löschen oder zu einer "gelöschte Elemente Tabelle" verschieben, wie ich mit temporalen Tabellen fühle, ist es redundant.

Kann dies auf effiziente Weise mit temporalen Tabellen erreicht werden?

Antwort

4

Zeittabellen sollen Ihnen eine zeitgenaue Ansicht Ihrer Daten ermöglichen, keine Statusansicht - sie versteht den Zustand nicht wirklich. Den Benutzern wird nichts angezeigt, um zu bestimmen, wie eine Zeile in der temporalen Verlaufstabelle angekommen ist.

Wenn Sie die Systemversionierung für Ihre temporale Tabelle nicht vorübergehend angehalten/gestoppt haben, müssen Sie nur das Delta zwischen der Verlaufstabelle und der aktiven Tabelle finden. Alle verbleibenden Zeilen in der Verlaufstabelle, die keine entsprechende Zeile in der aktiven Tabelle haben, sind gelöschte Zeilen.

Zum Beispiel, wenn Sie tblCustCalls haben und es für temporäre mit einem tblCustCallsHistory aktiviert ist, so etwas wie SELECT * FROM tblCustCallsHistory WHERE ID NOT IN (SELECT ID FROM tblCustCalls). In diesem Beispiel ist ID der Primärschlüssel. Sie können den TSQL optimieren, wenn die Tabellen sehr groß sind, sich das Basiskonzept jedoch nicht ändert.

+0

Danke. Ich hatte gehofft, keinen Vergleich zu machen. Dein Erklärungszustand macht Sinn. –