Sql-Server-2016

更改跟踪中是否有任何選項可以跟踪表特定列的更改?

  • November 4, 2021

您知道是否可以使用“跟踪更新的列”來跟踪更改(更改跟踪或 CDC),但只能跟踪我們想要跟踪的特定列。原因是我們有一個包含 300 列的表,我們只想跟踪其中的 5 個。

是的,當您根據參數通過過程啟用表時, CDC可以僅跟踪對指定列的更改:sys.sp_cdc_enable_tablecaptured_column_list

標識要包含在更改表中的源表列。capture_column_list 是 nvarchar(max) 並且可以為 NULL。如果為 NULL,則所有列都包含在更改表中。

有關啟用 CDC 和僅指定要跟踪的列子集的更多資訊,您可以閱讀Change Data Capture for auditing SQL Server,其中還提到:

在數據庫級別啟用 CDC 後,我們可以通過 db_owner 固定數據庫角色的成員,使用 sys.sp_cdc_enable_table 系統儲存過程啟用它來跟踪和審計數據庫表上的 DML 更改,並使其能夠跟踪@captured_column_list 參數指定的列列表的更改…

引用自:https://dba.stackexchange.com/questions/302115