2017-06-01 85 views
0

我需要審計數據庫中所有表中的數據。我使用SQL Server 2016.我爲所有表啓用了更改數據捕獲。SQL更改數據捕獲獲取所有表

如何按時間順序從所有表中獲取更改?

回答

0

基本上,Change Data Capture在[cdc]模式中創建系統表以捕獲每個表的更改事件。就像cdc。[TableSchemaName] _ [TableName] _CT,這個表將按時間順序對實際表進行所有更改。它基本上是從DB的事務日誌文件中讀取的數據。另一點 - 您需要在任何時間點查詢數據庫的最大Lsn值,以及您希望讀取更改數據的表的最小LSN值。最小LSN和最大LSN之間的記錄應該爲您提供表格的全部更改。

參考以下鏈接: https://docs.microsoft.com/en-us/sql/relational-databases/system-functions/cdc-fn-cdc-get-all-changes-capture-instance-transact-sql

+0

我可以查詢一個電話所有CDC表?我有100多張表,所以我不想要UNION。 – jlp

+0

默認情況下,CDC沒有任何這樣的過程/功能來一起讀取所有表格數據。您將需要編寫自定義SQL來實現它 – Sujith