Habilitación y deshabilitación de directivas de retención de datos

Importante

Azure SQL Edge ya no admite la plataforma ARM64.

En este artículo se describe cómo habilitar y deshabilitar directivas de retención de datos para una base de datos y una tabla.

Habilitación de la retención de datos para una base de datos

En el ejemplo siguiente se muestra cómo habilitar la retención de datos mediante ALTER DATABASE.

ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION ON;

Comprobación de si la retención de datos está habilitada para una base de datos

El comando siguiente se puede usar para comprobar si la retención de datos está habilitada para una base de datos.

SELECT is_data_retention_enabled,
    name
FROM sys.databases;

Habilitación de la retención de datos para una tabla

La retención de datos debe estar habilitada para cada tabla cuyos datos quiere que se purguen automáticamente. Cuando la retención de datos está habilitada en la base de datos y en la tabla, una tarea del sistema en segundo plano examina periódicamente la tabla para identificar y eliminar las filas obsoletas (antiguas). La retención de datos se puede habilitar en una tabla durante la creación de tablas mediante CREATE TABLE o mediante ALTER TABLE.

En el ejemplo siguiente se muestra cómo habilitar la retención de datos para una tabla mediante 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 establece la retención de datos en la tabla. El comando usa los siguientes parámetros necesarios:

  • DATA_DELETION: indica si la retención de datos es ON o OFF.

  • FILTER_COLUMN: nombre en la columna de la tabla, que se usará para determinar si las filas están obsoletas o no. La columna de filtro solo puede ser una columna con los siguientes tipos de datos:

    • date
    • smalldatetime
    • datetime
    • datetime2
    • datetimeoffset
  • RETENTION_PERIOD: valor entero seguido de un descriptor de unidad. Las unidades permitidas son DAY, DAYS, WEEK, WEEKS, MONTH, MONTHS, YEAR y YEARS.

En el ejemplo siguiente se muestra cómo habilitar la retención de datos para la tabla mediante ALTER TABLE.

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

Comprobación de si la retención de datos está habilitada para una tabla

El siguiente comando se puede usar para comprobar las tablas para las que se ha habilitado la retención de datos

SELECT name,
    data_retention_period,
    data_retention_period_unit
FROM sys.tables;

Un valor de data_retention_period = -1 y data_retention_period_unit como INFINITE indica que la retención de datos no está establecida en la tabla.

La consulta siguiente se puede usar para identificar la columna utilizada como para la filter_column retención de datos.

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 la configuración de retención de datos de base de datos y tablas

La configuración de retención de datos en la base de datos y la tabla se usan junto con para determinar si la limpieza automática de las filas antiguas se ejecuta en las tablas.

Opción de base de datos Opción de tabla Comportamiento
Apagado Apagado La directiva de retención de datos está deshabilitada y la limpieza automática y manual de registros antiguos está deshabilitada.
Apagado ACTIVAR La directiva de retención de datos está habilitada para la tabla. La limpieza automática de registros obsoletos está deshabilitada, pero se puede usar el método de limpieza manual para limpiar registros obsoletos.
ACTIVAR Apagado La directiva de retención de datos está habilitada en el nivel de base de datos. Sin embargo, dado que la opción está deshabilitada en el nivel de tabla, no hay ninguna limpieza basada en retención de filas antiguas.
ACTIVAR ACTIVAR La directiva de retención de datos está habilitada tanto para la base de datos como para las tablas. La limpieza automática de los registros obsoletos está habilitada.

Deshabilitación de la retención de datos en una tabla

La retención de datos se puede deshabilitar en una tabla mediante ALTER TABLE. El siguiente comando se puede usar para deshabilitar la retención de datos en una tabla.

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

Deshabilitación de la retención de la información en una base de datos

La retención de datos se puede deshabilitar en una tabla mediante ALTER DATABASE. El siguiente comando se puede usar para deshabilitar la retención de la información en una base de datos.

ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION OFF;

Pasos siguientes