Habilitar e desabilitar políticas de retenção de dados
Importante
O Azure SQL Edge será desativado em 30 de setembro de 2025. Para obter mais informações e opções de migração, consulte o Aviso de aposentadoria.
Nota
O Azure SQL Edge não suporta mais a 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 dados
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 para a qual você deseja que os dados sejam automaticamente limpos. Quando a retenção de dados está habilitada no banco de dados e na tabela, uma tarefa do sistema em segundo plano 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 usando 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 WITH (DATA_DELETION = ON (FILTER_COLUMN = [dbdatetime2], RETENTION_PERIOD = 1 day))
parte 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:
- data
- PequenoDateTime
- datetime
- datetime2
- datetimeoffset
RETENTION_PERIOD: Um valor inteiro seguido por um descritor de unidade. As unidades permitidas são DIA, DIAS, SEMANA, SEMANAS, MÊS, MESES, ANO e ANOS.
O exemplo a seguir mostra como habilitar a retenção de dados para 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á ativada 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 e data_retention_period_unit
como INFINITE, indica que a retenção de data_retention_period = -1
dados não está definida na tabela.
A consulta a seguir pode ser usada para identificar a coluna usada como a 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');
Correlacione as configurações de retenção de dados do banco de dados e da tabela
A configuração de retenção de dados no banco de dados e na tabela é usada em conjunto para determinar se a limpeza 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á desativada e a limpeza automática e manual de registros antigos está desabilitada. |
OFF | ON | A política de retenção de dados está habilitada para a tabela. A limpeza automática de registros obsoletos está desativada, no entanto, o método de limpeza manual pode ser usado para limpar registros obsoletos. |
ON | 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á desativada no nível da tabela, não há limpeza baseada em retenção de linhas antigas. |
ON | ON | A política de retenção de dados está habilitada para o banco de dados e as tabelas. A limpeza automática de registos obsoletos está ativada. |
Desativar a retenção de dados em uma tabela
A retenção de dados pode ser desativada 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 dados
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;