2009-12-11 23 views
0

我一直負責使用其他第三方產品來連接我們的產品。我需要做的一件事就是在添加新的「項目」時模仿第三方的一些產品功能 - 這可以觸及多個數據庫表。有沒有辦法將某種全局鉤子添加到數據庫中,以記錄對數據所做的所有更改?是否有一種簡單的方法來跟蹤SQL 2005數據庫中的所有更改

我想添加掛鉤,使用第三方應用程序創建一個項目,然後檢查所有表受到影響。

我知道它不僅僅是新的行,我遇到了一些計數字段,看起來會增加新的項目,我擔心可能有新的項目插入修改的其他記錄,而不僅僅是添加新行。

感謝所有幫助 〜普雷斯科特

回答

0

我能想到的下面的方式您可以跟蹤更改

  1. 運行SQL Server事件探查將捕獲的服務器上運行的所有查詢。您可以通過數據庫,模式或一組表格等過濾這些數據。
  2. 使用第三方事務日誌讀取器。這是一個不太乾擾的過程。您必須確保您已設置爲數據庫的完全恢復。
0

確保日誌不會被重複使用:

  • 數據庫處於完全恢復模式(真正的全,與初始備份)
  • 的日誌備份維護任務在測試期間暫停

Then:

  • 記下當前數據庫LSN
  • 運行的第三方項目創建
  • 檢查新添加的日誌信息與select * from ::fn_log(oldcurrentLSN, NULL);

所有的寫操作將在日誌中apear。從物理操作(分配單元ID)您可以進入邏輯操作(對象ID)。

現在說的是,如果您打算直接在數據庫級別與它進行交互,那麼您應該對第三方模式和數據模型有一個正確的理解。如果您打算更新第三方工具,並且您甚至不知道要更新哪些表格,則很可能最終會損壞其數據。

相關問題