Aktivera och inaktivera principer för datakvarhållning

Viktigt!

Azure SQL Edge stöder inte längre ARM64-plattformen.

Den här artikeln beskriver hur du aktiverar och inaktiverar principer för datakvarhållning för en databas och en tabell.

Aktivera datakvarhållning för en databas

I följande exempel visas hur du aktiverar datakvarhållning med hjälp av ALTER DATABASE.

ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION ON;

Kontrollera om datakvarhållning är aktiverat för en databas

Följande kommando kan användas för att kontrollera om datakvarhållning är aktiverat för en databas.

SELECT is_data_retention_enabled,
    name
FROM sys.databases;

Aktivera datakvarhållning för en tabell

Datakvarhållning måste aktiveras för varje tabell som du vill att data ska rensas automatiskt för. När datakvarhållning är aktiverat i databasen och tabellen genomsöker en bakgrundssystemuppgift regelbundet tabellen för att identifiera och ta bort eventuella föråldrade (föråldrade) rader. Datakvarhållning kan aktiveras i en tabell antingen när tabellen skapas med hjälp av CREATE TABLE eller med hjälp av ALTER TABLE.

I följande exempel visas hur du aktiverar datakvarhållning för en tabell med hjälp av CREATE TABLE.

CREATE TABLE [dbo].[data_retention_table] (
    [dbdatetime2] DATETIME2(7),
    [product_code] INT,
    [value] CHAR(10),
    CONSTRAINT [pk_current_data_retention_table] PRIMARY KEY CLUSTERED ([product_code])
)
WITH (
        DATA_DELETION = ON (
            FILTER_COLUMN = [dbdatetime2],
            RETENTION_PERIOD = 1 day
            )
        );

Delen WITH (DATA_DELETION = ON (FILTER_COLUMN = [dbdatetime2], RETENTION_PERIOD = 1 day)) av kommandot CREATE TABLE anger datakvarhållningen i tabellen. Kommandot använder följande obligatoriska parametrar:

  • DATA_DELETION: Anger om datakvarhållning är PÅ eller AV.

  • FILTER_COLUMN: Namn på kolumnen i tabellen, som används för att kontrollera om raderna är föråldrade eller inte. Filterkolumnen kan bara vara en kolumn med följande datatyper:

    • Datum
    • smalldatetime
    • Datetime
    • datetime2
    • datetimeoffset
  • RETENTION_PERIOD: Ett heltalsvärde följt av en enhetsbeskrivning. De tillåtna enheterna är DAG, DAGAR, VECKA, VECKOR, MÅNAD, MÅNADER, ÅR OCH ÅR.

I följande exempel visas hur du aktiverar datakvarhållning för tabellen med hjälp av ALTER TABLE.

ALTER TABLE [dbo].[data_retention_table]
SET (
    DATA_DELETION = ON (
        FILTER_COLUMN = [timestamp],
        RETENTION_PERIOD = 1 day
    )
)

Kontrollera om datakvarhållning är aktiverat för en tabell

Följande kommando kan användas för att kontrollera vilka tabeller som datakvarhållning är aktiverat för

SELECT name,
    data_retention_period,
    data_retention_period_unit
FROM sys.tables;

Ett värde för data_retention_period = -1 och data_retention_period_unit som OÄNDLIGt anger att datakvarhållning inte har angetts i tabellen.

Följande fråga kan användas för att identifiera kolumnen som används för filter_column datakvarhållning.

SELECT name
FROM sys.columns
WHERE is_data_deletion_filter_column = 1
    AND object_id = object_id(N'dbo.data_retention_table', N'U');

Korrelera inställningar för databas- och tabelldatakvarhållning

Inställningen för datakvarhållning i databasen och tabellen används tillsammans för att avgöra om autocleanup för föråldrade rader körs i tabellerna.

Databasalternativ Tabellalternativ Funktionssätt
OFF OFF Datakvarhållningsprincipen är inaktiverad och både automatisk och manuell rensning av föråldrade poster inaktiveras.
OFF ON Datakvarhållningsprincipen är aktiverad för tabellen. Automatisk rensning av föråldrade poster är inaktiverat, men manuell rensningsmetod kan användas för att rensa föråldrade poster.
ON OFF Datakvarhållningsprincipen är aktiverad på databasnivå. Men eftersom alternativet är inaktiverat på tabellnivå finns det ingen kvarhållningsbaserad rensning av föråldrade rader.
ON ON Datakvarhållningsprincipen är aktiverad för både databasen och tabellerna. Automatisk rensning av föråldrade poster är aktiverat.

Inaktivera datakvarhållning i en tabell

Datakvarhållning kan inaktiveras i en tabell med hjälp av ALTER TABLE. Följande kommando kan användas för att inaktivera datakvarhållning i en tabell.

ALTER TABLE [dbo].[data_retention_table]
SET (DATA_DELETION = OFF);

Inaktivera datakvarhållning på en databas

Datakvarhållning kan inaktiveras i en tabell med hjälp av ALTER DATABASE. Följande kommando kan användas för att inaktivera datakvarhållning i en databas.

ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION OFF;

Nästa steg