Beenden der Versionsverwaltung in einer temporalen Tabelle mit Systemversionsverwaltung
Gilt für: SQL Server 2016 (13.x) und höher Azure SQL-DatenbankAzure SQL Managed Instance
Möglicherweise möchten Sie die Versionsverwaltung Ihrer temporalen Tabelle vorübergehend oder dauerhaft beenden. Legen Sie hierzu die SYSTEM_VERSIONING-Klausel auf OFF fest.
Festlegen von SYSTEM_VERSIONING = OFF
Beenden Sie die Systemversionsverwaltung, wenn Sie bestimmte Wartungsvorgänge für eine temporäre Tabelle ausführen möchten, oder wenn Sie eine Tabelle mit Versionsverwaltung nicht mehr benötigen. Durch diesen Vorgang erhalten Sie zwei voneinander unabhängige Tabellen:
Aktuelle Tabelle mit einer Punktdefinition
Verlaufstabelle als normale Tabelle
Wichtige Hinweise
- Die Verlaufstabelle beendet die Erfassung der Updates während SYSTEM_VERSIONING = OFF.
- Es tritt kein Datenverlust in der temporalen Tabelle auf, wenn Sie SYSTEM_VERSIONING = OFF festlegen oder den SYSTEM_TIME Zeitraum löschen.
- Wenn Sie SYSTEM_VERSIONING = OFF festlegen und den SYSTEM_TIME-Zeitraum nicht löschen, setzt das System die Aktualisierung der Zeitraumspalten für jeden Einfüge- und Aktualisierungsvorgang fort. Löschungen in der aktuellen Tabelle sind dauerhaft.
- Löschen Sie den SYSTEM_TIME-Zeitraum, um die Zeitraumspalten zu löschen.
- Wenn Sie SYSTEM_VERSIONING = OFF festlegen, können alle Benutzer mit ausreichenden Berechtigungen das Schema und den Inhalt der Verlaufstabelle ändern oder diese sogar endgültig löschen.
- Sie können SYSTEM_VERSIONING = OFF nicht festlegen, wenn Sie mithilfe temporaler Abfrageerweiterungen andere Objekte mit SCHEMABINDING erstellt haben (z. B. durch Verweise auf SYSTEM_TIME). Diese Einschränkung verhindert, dass es bei diesen Objekten zu Fehlern kommt, wenn Sie SYSTEM_VERSIONING = OFF festlegen.
Dauerhaftes Entfernen von SYSTEM_VERSIONING
In diesem Beispiel wird SYSTEM_VERSIONING endgültig entfernt, und die Zeitraumspalten werden gelöscht. Das Entfernen der Zeitraumspalten ist optional.
ALTER TABLE dbo.Department SET (SYSTEM_VERSIONING = OFF);
/*Optionally, DROP PERIOD if you want to revert temporal table to a non-temporal*/
ALTER TABLE dbo.Department
DROP PERIOD FOR SYSTEM_TIME;
Vorübergehendes Entfernen von SYSTEM_VERSIONING
Dies ist die Liste der Vorgänge, für die die Systemversionsverwaltung auf OFFfestgelegt werden muss:
- Entfernen unnötiger Daten aus dem Verlauf (DELETE oder TRUNCATE)
- Entfernen von Daten aus der aktuellen Tabelle ohne Versionsverwaltung (DELETE, TRUNCATE)
- Partition SWITCH OUT aus der aktuellen Tabelle
- Partition SWITCH IN in die Verlaufstabelle
In diesem Beispiel wird SYSTEM_VERSIONING vorübergehend beendet, um bestimmte Wartungsvorgänge zu erlauben. Wenn Sie Versionsverwaltung als Voraussetzung für die Tabellenwartung vorübergehend beenden, empfehlen wir nachdrücklich, dies für die Datenkonsistenz innerhalb einer Transaktion durchzuführen.
Hinweis
Wenn Sie die Systemversionsverwaltung wieder aktivieren, vergessen Sie nicht, das Argument „HISTORY_TABLE“ anzugeben. Andernfalls wird eine neue Verlaufstabelle erstellt und der aktuellen Tabelle zugeordnet. Die ursprüngliche Verlaufstabelle kann dann weiterhin als normale Tabelle vorhanden sein, wird der aktuellen Tabelle aber nicht zugeordnet.
BEGIN TRAN
ALTER TABLE dbo.Department SET (SYSTEM_VERSIONING = OFF);
TRUNCATE TABLE [History].[DepartmentHistory]
WITH (PARTITIONS (1,2))
ALTER TABLE dbo.Department SET
(
SYSTEM_VERSIONING = ON (HISTORY_TABLE = History.DepartmentHistory)
);
COMMIT ;
Nächste Schritte
- Temporale Tabellen
- Erste Schritte mit temporalen Tabellen mit Systemversionsverwaltung
- Verwalten der Beibehaltung von Verlaufsdaten in temporalen Tabellen mit Systemversionsverwaltung
- Temporale Tabellen mit Systemversionsverwaltung und speicheroptimierten Tabellen
- Erstellen einer temporalen Tabelle mit Systemversionsverwaltung
- Ändern von Daten in einer temporalen Tabelle mit Systemversionsverwaltung
- Abfragen von Daten in einer temporalen Tabelle mit Systemversionsverwaltung
- Ändern vom Schema einer versionsverwalteten temporalen Tabelle
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für