Povolení a zakázání zásad uchovávání dat
Důležité
Azure SQL Edge bude vyřazeno 30. září 2025. Další informace a možnosti migrace najdete v oznámení o vyřazení.
Poznámka:
Azure SQL Edge už nepodporuje platformu ARM64.
Tento článek popisuje, jak povolit a zakázat zásady uchovávání dat pro databázi a tabulku.
Povolení uchovávání dat pro databázi
Následující příklad ukazuje, jak povolit uchovávání dat pomocí příkazu ALTER DATABASE.
ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION ON;
Kontrola, jestli je pro databázi povolené uchovávání dat
Pomocí následujícího příkazu můžete zkontrolovat, jestli je pro databázi povolené uchovávání dat.
SELECT is_data_retention_enabled,
name
FROM sys.databases;
Povolení uchovávání dat pro tabulku
Pro každou tabulku, pro kterou chcete, aby se data automaticky vyprázdnila, musí být povolená uchovávání dat. Pokud je u databáze a tabulky povolené uchovávání dat, úloha systému na pozadí pravidelně kontroluje tabulku, aby identifikovala a odstranila všechny zastaralé (zastaralé) řádky. Uchovávání dat lze u tabulky povolit buď během vytváření tabulky pomocí create TABLE , nebo pomocí příkazu ALTER TABLE.
Následující příklad ukazuje, jak povolit uchovávání dat pro tabulku pomocí 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
)
);
Část WITH (DATA_DELETION = ON (FILTER_COLUMN = [dbdatetime2], RETENTION_PERIOD = 1 day))
příkazu CREATE TABLE nastaví uchovávání dat v tabulce. Příkaz používá následující požadované parametry:
DATA_DELETION: Označuje, jestli je uchovávání dat zapnuté nebo vypnuté.
FILTER_COLUMN: Název sloupce v tabulce, který se použije ke zjištění, jestli jsou řádky zastaralé nebo ne. Sloupec filtru může být pouze sloupec s následujícími datovými typy:
- rande
- smalldatetime
- datetime
- datetime2
- datetimeoffset
RETENTION_PERIOD: Celočíselná hodnota následovaná popisovačem jednotky. Povolené jednotky jsou DEN, DNY, TÝDEN, TÝDNY, MĚSÍC, MĚSÍCE, ROK a ROKY.
Následující příklad ukazuje, jak povolit uchovávání dat pro tabulku pomocí ALTER TABLE.
ALTER TABLE [dbo].[data_retention_table]
SET (
DATA_DELETION = ON (
FILTER_COLUMN = [timestamp],
RETENTION_PERIOD = 1 day
)
)
Kontrola povolení uchovávání dat pro tabulku
Následující příkaz se dá použít ke kontrole tabulek, pro které je povolené uchovávání dat.
SELECT name,
data_retention_period,
data_retention_period_unit
FROM sys.tables;
Hodnota data_retention_period = -1
a data_retention_period_unit
jako INFINITE označuje, že v tabulce není nastavené uchovávání dat.
Následující dotaz lze použít k identifikaci sloupce použitého filter_column
jako pro uchovávání dat.
SELECT name
FROM sys.columns
WHERE is_data_deletion_filter_column = 1
AND object_id = object_id(N'dbo.data_retention_table', N'U');
Korelace nastavení uchovávání dat databáze a tabulky
Nastavení uchovávání dat v databázi a tabulce se používá ve spojení k určení, jestli se v tabulkách spouští automatické čištění starých řádků.
Možnost databáze | Možnost Tabulka | Chování |
---|---|---|
OFF | OFF | Zásady uchovávání dat jsou zakázané a automatické i ruční vyčištění starých záznamů je zakázané. |
OFF | ON | Pro tabulku je povolená zásada uchovávání dat. Automatické vyčištění zastaralých záznamů je zakázané, ale metodu ručního čištění lze použít k vyčištění zastaralých záznamů. |
ON | OFF | Zásady uchovávání dat jsou povolené na úrovni databáze. Vzhledem k tomu, že je tato možnost zakázaná na úrovni tabulky, neexistuje žádné vyčištění na základě uchovávání starých řádků. |
ON | ON | Zásady uchovávání dat jsou povolené pro databázi i tabulky. Je povoleno automatické vyčištění zastaralých záznamů. |
Zakázání uchovávání dat v tabulce
Uchovávání dat lze v tabulce zakázat pomocí funkce ALTER TABLE. K zakázání uchovávání dat v tabulce můžete použít následující příkaz.
ALTER TABLE [dbo].[data_retention_table]
SET (DATA_DELETION = OFF);
Zakázání uchovávání dat v databázi
Uchovávání dat lze v tabulce zakázat pomocí funkce ALTER DATABASE. Následující příkaz lze použít k zakázání uchovávání dat v databázi.
ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION OFF;