啟用及停用資料保留原則
重要
Azure SQL Edge 將於 2025 年 9 月 30 日淘汰。 如需詳細資訊和移轉選項,請參閱淘汰通知。
注意
Azure SQL Edge 不再支援 ARM64 平台。
此文章描述如何啟用及停用資料庫與資料表的資料保留原則。
啟用資料庫的資料保留
下列範例顯示如何使用 ALTER DATABASE 來啟用資料保留。
ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION ON;
檢查是否已啟用資料庫的資料保留
下列命令可用於檢查資料庫的資料保留是否已啟用。
SELECT is_data_retention_enabled,
name
FROM sys.databases;
啟用資料表的資料保留
您必須針對要自動清除資料的每個資料表啟用資料保留。 當啟用資料庫與資料表上的資料保留時,背景系統工作會定期掃描資料表,以識別及刪除已淘汰 (過時) 的資料列。 您可以使用 CREATE TABLE 或使用 ALTER TABLE,在建立資料表期間啟用資料表的資料保留。
下列範例顯示如何使用 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
)
);
CREATE TABLE 命令的 WITH (DATA_DELETION = ON (FILTER_COLUMN = [dbdatetime2], RETENTION_PERIOD = 1 day))
部分會設定資料表上的資料保留。 該命令會使用下列必要參數:
DATA_DELETION:指出資料保留為 ON 或 OFF。
FILTER_COLUMN:資料表中資料行的名稱,用於確認資料列是否已淘汰。 篩選資料行只能是具有下列資料類型的資料行:
- date
- smalldatetime
- datetime
- datetime2
- datetimeoffset
RETENTION_PERIOD:整數值,後面接著單位描述項。 允許的單位為 DAY、DAYS、WEEK、WEEK、MONTH、MONTHS、YEAR 與 YEARS。
下列範例顯示如何使用 ALTER TABLE 來啟用資料表的資料保留。
ALTER TABLE [dbo].[data_retention_table]
SET (
DATA_DELETION = ON (
FILTER_COLUMN = [timestamp],
RETENTION_PERIOD = 1 day
)
)
檢查是否已啟用資料表的資料保留
下列命令可用於檢查已啟用資料保留的資料庫
SELECT name,
data_retention_period,
data_retention_period_unit
FROM sys.tables;
data_retention_period = -1
的值和 data_retention_period_unit
為 INFINITE,表示未在資料表上設定資料保留。
下列查詢可用於指出用作資料保留之 filter_column
的資料行。
SELECT name
FROM sys.columns
WHERE is_data_deletion_filter_column = 1
AND object_id = object_id(N'dbo.data_retention_table', N'U');
將資料庫和資料表資料保留設定相互關聯
資料庫與資料表的資料保留設定會搭配使用,以判斷過時資料列的自動清除是否會在資料表上執行。
資料庫選項 | 資料表選項 | 行為 |
---|---|---|
OFF | OFF | 資料保留原則已停用,且已停用自動與手動清除過時記錄。 |
OFF | ON | 資料表的資料保留原則已啟用。 已停用自動清除已淘汰記錄,然而,還可使用手動清除方法來清除已淘汰記錄。 |
開啟 | OFF | 啟用資料庫層級的資料保留原則。 然而,因為停用資料表層級的選項,所以未針對保留清除任何過時資料列。 |
開啟 | 開啟 | 資料庫與資料表的資料保留原則都會啟用。 已啟用自動清除已淘汰記錄。 |
停用資料表的資料保留
您可以使用 ALTER TABLE 停用資料表的資料保留。 下列命令可用於停用資料表的資料保留。
ALTER TABLE [dbo].[data_retention_table]
SET (DATA_DELETION = OFF);
停用資料庫的資料保留
您可以使用 ALTER DATABASE 停用資料表的資料保留。 下列命令可用於停用資料庫的資料保留。
ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION OFF;