Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2016 (13.x) i nowsze wersje
Azure SQL Database
Azure SQL Managed Instance
SQL Database w usłudze Microsoft Fabric
Możesz zaprzestać wersjonowania w tabeli czasowej czasowo lub trwale. Można to zrobić, ustawiając klauzulę SYSTEM_VERSIONING
na wartość OFF
.
Ustaw SYSTEM_VERSIONING na WYŁĄCZONE
Zatrzymaj wersjonowanie systemu, jeśli chcesz wykonać specyficzne operacje konserwacyjne w tabeli temporalnej lub nie potrzebujesz już tabeli z wersjonowaniem. Ze względu na tę operację uzyskujesz dwie niezależne tabele:
- Aktualna tabela z definicją okresu
- Tabela historii jako zwykła tabela
Uwagi
Tabela historii zatrzymuje przechwytywanie aktualizacji podczas SYSTEM_VERSIONING = OFF
.
Żadna utrata danych nie występuje w tabeli czasowej podczas ustawiania SYSTEM_VERSIONING = OFF
lub porzucania okresu SYSTEM_TIME
.
Po ustawieniu SYSTEM_VERSIONING = OFF
i nie usunięciu okresu SYSTEM_TIME
system nadal aktualizuje kolumny okresu dla każdej operacji wstawiania i aktualizacji. Usunięcia w bieżącej tabeli są trwałe.
Aby usunąć kolumny okresu, należy usunąć okres SYSTEM_TIME
. Aby usunąć kolumny z kropkami, użyj ALTER TABLE <table> DROP <column>;
. Aby uzyskać więcej informacji, zobacz Zmienianie schematu tabeli czasowej w wersji systemowej.
Po ustawieniu SYSTEM_VERSIONING = OFF
wszyscy użytkownicy z wystarczającymi uprawnieniami mogą modyfikować schemat i zawartość tabeli historii, a nawet trwale usuwać tabelę historii.
Nie można ustawić SYSTEM_VERSIONING = OFF
, jeśli masz inne obiekty utworzone za pomocą SCHEMABINDING
przy użyciu rozszerzeń zapytań czasowych, takich jak odwoływanie się do SYSTEM_TIME
. To ograniczenie uniemożliwia niepowodzenie tych obiektów w przypadku ustawienia SYSTEM_VERSIONING = OFF
.
Trwałe usuwanie SYSTEM_VERSIONING
Ten przykład trwale usuwa SYSTEM_VERSIONING
i usuwa kolumny okresu. Usunięcie kolumn z kropkami jest opcjonalne.
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;
Tymczasowo usuń SYSTEM_VERSIONING
Poniższa lista zawiera listę operacji, które wymagają ustawienia przechowywania wersji systemu na OFF
:
- Usuwanie niepotrzebnych danych z historii (
DELETE
lubTRUNCATE
) - Usuwanie danych z bieżącej tabeli bez przechowywania wersji (
DELETE
,TRUNCATE
) - Partycja
SWITCH OUT
z bieżącej tabeli - Wstawienie partycji
SWITCH IN
do tabeli historii
Ten przykład tymczasowo zatrzymuje SYSTEM_VERSIONING
, aby umożliwić wykonywanie określonych operacji konserwacji. Jeśli tymczasowo zatrzymasz przechowywanie wersji jako wymaganie wstępne dotyczące konserwacji tabeli, zdecydowanie zalecamy wykonanie tej zmiany wewnątrz transakcji, aby zachować spójność danych.
Podczas ponownego włączania wersji systemu nie zapomnij określić argumentu HISTORY_TABLE
. Niedopełnienie tego powoduje, że zostaje utworzona nowa tabela historii, która jest skojarzona z bieżącą tabelą. Oryginalna tabela historii może nadal istnieć jako zwykła tabela, nie jest już skojarzona z bieżącą tabelą.
BEGIN TRANSACTION;
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;
Powiązana zawartość
- tabele czasowe
- Rozpoczynanie pracy z tabelami czasowymi w wersji systemowej
- Zarządzanie retencją danych historycznych w systemowo-wersjonowanych tabelach czasowych
- Systemowo wersjonowane tabele czasowe z tabelami zoptymalizowanymi pod kątem pamięci
- Tworzenie tabeli czasowej w wersji systemowej
- Modyfikowanie danych w tabeli czasowej w wersji systemowej
- Wykonywanie zapytań dotyczących danych w tabeli czasowej wersjonowanej przez system
- Zmienianie schematu tabeli czasowej w wersji systemowej