Condividi tramite


Abilitare e disabilitare i criteri di conservazione dei dati

Importante

SQL Edge di Azure verrà ritirato il 30 settembre 2025. Per altre informazioni e per le opzioni di migrazione, vedere l'avviso di ritiro.

Nota

SQL Edge di Azure non supporta più la piattaforma ARM64.

Questo articolo descrive come abilitare e disabilitare i criteri di conservazione dei dati per un database e una tabella.

Abilitare la conservazione dei dati per un database

Nell'esempio seguente viene illustrato come abilitare la conservazione dei dati usando ALTER DATABASE.

ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION ON;

Controllare se la conservazione dei dati è abilitata per un database

Il comando seguente può essere usato per verificare se la conservazione dei dati è abilitata per un database.

SELECT is_data_retention_enabled,
    name
FROM sys.databases;

Abilitare la conservazione dei dati per una tabella

La conservazione dei dati deve essere abilitata per ogni tabella per cui si desidera eliminare automaticamente i dati. Quando la conservazione dati è abilitata per il database e la tabella, un'attività di sistema in background analizzerà periodicamente la tabella per identificare ed eliminare tutte le righe obsolete (vecchie). La conservazione dei dati può essere abilitata in una tabella durante la creazione di tabelle, usando CREATE TABLE o ALTER TABLE.

Nell'esempio seguente viene illustrato come abilitare la conservazione dei dati per una tabella usando 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
            )
        );

La WITH (DATA_DELETION = ON (FILTER_COLUMN = [dbdatetime2], RETENTION_PERIOD = 1 day)) parte del comando CREATE TABLE imposta la conservazione dei dati nella tabella. Il comando usa i seguenti parametri obbligatori:

  • DATA_DELETION: indica se la conservazione dei dati è attivata o disattivata.

  • FILTER_COLUMN: nome nella colonna della tabella, che verrà usato per verificare se le righe sono obsolete o meno. La colonna di filtro può essere solo una colonna con i tipi di dati seguenti:

    • date
    • smalldatetime
    • datetime
    • datetime2
    • datetimeoffset
  • RETENTION_PERIOD: valore intero seguito da un descrittore di unità. Le unità consentite sono GIORNO, GIORNI, SETTIMANA, SETTIMANE, MESE, MESI, ANNO e ANNI.

Nell'esempio seguente viene illustrato come abilitare la conservazione dei dati per la tabella tramite ALTER TABLE.

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

Controllare se la conservazione dei dati è abilitata per una tabella

Il comando seguente può essere usato per controllare le tabelle per cui è abilitata la conservazione dei dati

SELECT name,
    data_retention_period,
    data_retention_period_unit
FROM sys.tables;

Un valore di data_retention_period = -1 e data_retention_period_unit come INFINITE indica che la conservazione dei dati non è impostata nella tabella.

Per identificare la colonna usata come filter_column per la conservazione dei dati, è possibile usare la query seguente.

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

Correlazione tra le impostazioni di conservazione dei dati di database e tabelle

L'impostazione di conservazione dei dati è utilizzata insieme nel database e nella tabella per determinare se nelle tabelle viene eseguita la pulizia automatica per le righe obsolete.

Opzione di database Opzione tabella Comportamento
OFF OFF I criteri di conservazione dei dati sono disabilitati, così come è disabilitata la pulizia automatica e manuale dei record obsoleti.
OFF In... I criteri di conservazione dei dati sono abilitati per la tabella. La pulizia automatica dei record obsoleti è disabilitata, tuttavia è possibile usare il metodo di pulizia manuale per pulire i record obsoleti.
In... OFF I criteri di conservazione dei dati sono abilitati a livello di database. Tuttavia, poiché l'opzione è disabilitata a livello di tabella, non esiste una pulizia basata sulla conservazione delle righe obsolete.
In... In... I criteri di conservazione dei dati sono abilitati sia per il database che per le tabelle. La pulizia automatica dei record obsoleti è abilitata.

Disabilitare la conservazione dei dati in una tabella

La conservazione dei dati può essere disabilitata in una tabella tramite ALTER TABLE. Il comando seguente può essere usato per disabilitare la conservazione dei dati in una tabella.

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

Disabilitare la conservazione dei dati in un database

La conservazione dei dati può essere disabilitata in una tabella tramite ALTER DATABASE. Il comando seguente può essere usato per disabilitare la conservazione dei dati in un database.

ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION OFF;