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 Database i Förhandsversion av 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
Remarks
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 = OFFkan 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 (
DELETEellerTRUNCATE) - Ta bort data från den aktuella tabellen utan versionshantering (
DELETE,TRUNCATE) - Partition
SWITCH OUTfrån den aktuella tabellen - Partitionera
SWITCH INi 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;
Related content
- Temporal tables
- 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