Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för: SQL Server 2016 (13.x) och senare versioner
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
Du kanske vill stoppa versionshantering i den temporära tabellen, antingen tillfälligt eller permanent. Du kan göra det genom att ställa in villkoret SYSTEM_VERSIONING
till OFF
.
Ange SYSTEM_VERSIONING = AV
Stoppa systemversioner om du vill utföra specifika underhållsåtgärder i en temporal tabell eller inte längre behöver en versionstabell. På grund av den här åtgärden får du två oberoende tabeller:
- Aktuell tabell med en perioddefinition
- Historiktabell som en vanlig tabell
Anmärkningar
Historiktabellen slutar samla in uppdateringarna under SYSTEM_VERSIONING = OFF
.
Ingen dataförlust sker i den tidsmässiga tabellen när du anger SYSTEM_VERSIONING = OFF
eller släpper SYSTEM_TIME
period.
När du anger SYSTEM_VERSIONING = OFF
och inte tar bort SYSTEM_TIME
-perioden, fortsätter systemet att uppdatera periodkolumnerna vid varje inmatning och uppdatering. Borttagningar i den aktuella tabellen är permanenta.
Du måste ta bort den SYSTEM_TIME
perioden för att ta bort periodkolumnerna. Om du vill ta bort periodkolumnerna använder du ALTER TABLE <table> DROP <column>;
. Mer information finns i Ändra schemat för en systemversionsbaserad temporal tabell.
När du anger SYSTEM_VERSIONING = OFF
kan alla användare med tillräcklig behörighet ändra schemat och innehållet i historiktabellen, eller till och med permanent ta bort historiktabellen.
Du kan inte ange SYSTEM_VERSIONING = OFF
om du har andra objekt som skapats med SCHEMABINDING
med hjälp av temporala frågetillägg, till exempel refererar till SYSTEM_TIME
. Den här begränsningen förhindrar att dessa objekt misslyckas om du anger SYSTEM_VERSIONING = OFF
.
Ta bort SYSTEM_VERSIONING permanent
Det här exemplet tar bort SYSTEM_VERSIONING
permanent och tar bort periodkolumnerna. Det är valfritt att ta bort periodkolumnerna.
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;
Ta tillfälligt bort SYSTEM_VERSIONING
Följande lista innehåller åtgärder som kräver att systemversionering sätts till OFF
:
- Ta bort onödiga data från historiken (
DELETE
ellerTRUNCATE
) - Ta bort data från den aktuella tabellen utan versionshantering (
DELETE
,TRUNCATE
) - Partition
SWITCH OUT
från den aktuella tabellen - Partitionera
SWITCH IN
i historiktabellen
Det här exemplet stoppar tillfälligt SYSTEM_VERSIONING
så att du kan utföra specifika underhållsåtgärder. Om du stoppar versionshantering tillfälligt som en förutsättning för tabellunderhåll rekommenderar vi starkt att du gör den här ändringen i en transaktion för att behålla datakonsekvensen.
När du aktiverar systemversioner igen ska du inte glömma att ange argumentet HISTORY_TABLE
. Om du inte gör det skapas en ny historiktabell och associeras med den aktuella tabellen. Den ursprungliga historiktabellen kan fortfarande finnas som en normal tabell och är inte längre associerad med den aktuella tabellen.
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;
Relaterat innehåll
- Temporala Tabeller
- Kom igång med systemversionsbaserade tidstabeller
- Hantera kvarhållning av historiska data i systemversionsbaserade tidstabeller
- systemversionsbaserade tidstabeller med minnesoptimerade tabeller
- Skapa en systemversionsbaserad temporal tabell
- Ändra data i en systemversionsbaserad temporal tabell
- Fråga efter data i en systemversionsbaserad temporal tabell
- Ändra schemat för en systemversionsbaserad tidstabell