啟用及停用資料保留原則

重要

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;

下一步