Habilitar e desabilitar as políticas de retenção de dados

Importante

O SQL do Azure no Edge será desativado em 30 de setembro de 2025. Para obter mais informações e opções de migração, confira o aviso de desativação.

Observação

O SQL do Azure no Edge encerrou o suporte à plataforma ARM64.

Este artigo descreve como habilitar e desabilitar políticas de retenção de dados para um banco de dados e uma tabela.

Habilitar a retenção de dados para um banco de dado

O exemplo a seguir mostra como habilitar a retenção de dados usando ALTER DATABASE.

ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION ON;

Verificar se a retenção de dados está habilitada para um banco de dados

O comando a seguir pode ser usado para verificar se a retenção de dados está habilitada para um banco de dados.

SELECT is_data_retention_enabled,
    name
FROM sys.databases;

Habilitar a retenção de dados para uma tabela

A retenção de dados deve ser habilitada para cada tabela em que você deseja que os dados sejam limpos automaticamente. Quando a retenção de dados é habilitada no banco de dados e na tabela, uma tarefa em segundo plano do sistema verifica periodicamente a tabela para identificar e excluir quaisquer linhas obsoletas (antigas). A retenção de dados pode ser habilitada em uma tabela durante a criação da tabela usando CREATE TABLE ou ALTER TABLE.

O exemplo a seguir mostra como habilitar a retenção de dados para uma tabela 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
            )
        );

A parte WITH (DATA_DELETION = ON (FILTER_COLUMN = [dbdatetime2], RETENTION_PERIOD = 1 day)) do comando CREATE TABLE define a retenção de dados na tabela. O comando usa os seguintes parâmetros necessários:

  • DATA_DELETION: indica se a retenção de dados está ativada ou desativada.

  • FILTER_COLUMN: nome na coluna da tabela, que será usado para verificar se as linhas estão obsoletas ou não. A coluna de filtro só pode ser uma coluna com os seguintes tipos de dados:

    • date
    • smalldatetime
    • datetime
    • datetime2
    • datetimeoffset
  • RETENTION_PERIOD: um valor inteiro seguido por um descritor de unidade. As unidades permitidas são DAY, DAYS, WEEK, WEEKS, MONTH, MONTHS, YEAR e YEARS.

O exemplo a seguir mostra como habilitar a retenção de dados para a tabela usando ALTER TABLE.

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

Verificar se a retenção de dados está habilitada para uma tabela

O comando a seguir pode ser usado para verificar as tabelas para as quais a retenção de dados está habilitada

SELECT name,
    data_retention_period,
    data_retention_period_unit
FROM sys.tables;

Um valor de data_retention_period = -1 e data_retention_period_unit como INFINITE indica que a retenção de dados não está definida na tabela.

A consulta a seguir pode ser usada para identificar a coluna usada como o filter_column para retenção de dados.

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

Correlacionar configurações de retenção de dados de banco de dados e tabela

A configuração de retenção de dados no banco de dados e a tabela são usadas em conjunto para determinar se a coleta automática para linhas antigas é executada nas tabelas.

Opção de banco de dados Opção de tabela Comportamento
OFF OFF A política de retenção de dados está desabilitada e a limpeza automática e manual de registros antigos está desabilitada.
OFF ATIVADO A política de retenção de dados está habilitada para a tabela. A limpeza automática de registros obsoletos está desabilitada; no entanto, o método de limpeza manual pode ser usado para limpar registros obsoletos.
ATIVADO OFF A política de retenção de dados está habilitada no nível do banco de dados. No entanto, como a opção está desabilitada no nível da tabela, não há limpeza baseada em retenção de linhas antigas.
ATIVADO ATIVADO A política de retenção de dados está habilitada para o banco de dados e as tabelas. A limpeza automática de registros obsoletos está habilitada.

Desabilitar a retenção de dados em uma tabela

A retenção de dados pode ser desabilitada em uma tabela usando ALTER TABLE. O comando a seguir pode ser usado para desabilitar a retenção de dados em uma tabela.

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

Desabilitar a retenção de dados em um banco de dado

A retenção de dados pode ser desabilitada em uma tabela usando ALTER DATABASE. O comando a seguir pode ser usado para desabilitar a retenção de dados em um banco de dados.

ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION OFF;