Sql-Server

如何獲取更改數據的快照並每天儲存它們

  • September 13, 2017

我有客戶的要求。他希望每天為某些給定的表(主要是金融交易表)儲存哪些數據發生變化的快照。這是出於審計目的。數據將以表格形式儲存,以便我們可以根據它開發一些報告以跟踪每天的變化。在 SQL Server 2008 R2 Enterprise Edition 中有哪些可能的技術?我也對最新的可用版本感興趣,因為我們計劃遷移到最新的 SQL Server 版本。

在感興趣的表上啟用更改數據擷取。將這樣標記的行複製到與第一個定義匹配的另一個表中,但有一個額外的 datetime 列來顯示它的寫入時間。本質上是一個緩慢變化的維度,Kimball 命名法中的類型 2。


SQL Server 2016 引入了時態表。這些結合了 CDC 的功能和我上面提到的審計表。一旦定義,系統本身會隨著數據的變化將行版本複製到歷史表中。所有歷史記錄都會保留,直到明確刪除。每行都有一個記錄的時間間隔,顯示它何時有效。

還有Change Tracking ,它是CDC的輕量級版本。或者,由於您沒有指定哪種報告,並且您正在處理財務數據的更改並可能進行審計,您應該調查SQL Server 審計,它為您提供有關數據訪問和更改的使用者方面的資訊。

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