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;