Compartir a través de


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

Importante

Azure SQL Edge se retirará el 30 de septiembre de 2025. Para obtener más información y opciones de migración, consulte el aviso de retirada.

Nota:

Azure SQL Edge ya no admite la plataforma ARM64.

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

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

En el siguiente ejemplo 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 siguiente comando se puede usar para comprobar si se ha habilitado la retención de datos 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 se habilita la retención de información en la base de datos y en la tabla, una tarea de sistema en segundo plano examinará 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 la tabla mediante CREATE TABLE o ALTER TABLE.

En el siguiente ejemplo 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 parte WITH (DATA_DELETION = ON (FILTER_COLUMN = [dbdatetime2], RETENTION_PERIOD = 1 day)) 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 está activada o desactivada.

  • FILTER_COLUMN: nombre en la columna de la tabla que se utilizará 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 siguiente ejemplo se muestra cómo habilitar la retención de datos para una 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 siguiente consulta se puede utilizar para identificar la columna utilizada como filter_column para la retención de los 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 la retención de datos en la base de datos y en la tabla se utilizan conjuntamente para determinar si se ejecuta la limpieza automática de filas envejecidas 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, tanto manual como automática de los registros antiguos, está deshabilitada.
Apagado ACTIVAR La directiva de retención de datos se ha habilitado para la tabla. La limpieza automática de los registros obsoletos está deshabilitada; sin embargo, se puede usar el método de limpieza manual para limpiarlos.
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 de filas antiguas basada en la retención.
ACTIVAR ACTIVAR La directiva de retención de datos está habilitada para la base de datos y 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 base de datos 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;