2017-09-13 116 views
0

在我們的SQL Server數據庫中,我們有大約800多個表,並且有40-50個表是業務關鍵表。 MIS團隊需要根據這50個業務表格生成報告。SQL Server Delta記錄提取

這50個表經常更新。 MIS團隊需要這些增量記錄(更新/插入/刪除)

什麼是最佳解決方案?

我們這裏有幾個approches 1.Always在2.Replication 3.Mirroring 4.Introducing在這50臺新列(LastModifiedDate &創建索引),並定期地拉這些記錄,並將其填充到MIS環境。

新的列LastModifiedDate方法將會有巨大的代碼更改。

此基礎上50桌,我們的存儲過程的數量龐大,它具有插入/更新

語句。在這些存儲過程中,我們需要爲LastModifiedDate進行代碼更改。

從上述方案中最好的解決方案是什麼?

請讓我們知道是否有其他方法可以做。注意:我們使用SQL Server 2008 R2

問候KARTHIK

回答

0

一種方法是有插入,更新和對這些表刪除觸發器,併爲每個表存檔表具有完全相同的列例如加用戶名,修改日期時間和一點點來指示新舊。然後,觸發器簡單地插入到歸檔中,從插入的/刪除的+當前用戶中選擇,當前時間,1代表插入,0代表刪除。

然後,所有的管理信息系統都需要關注歸檔表,並且不需要對現有表進行結構更改。

+0

感謝您的回覆。我希望觸發不會是更好的解決方案。 – Karthik

+0

@Karthik如果創建150個觸發器會讓您擔心,我有一個存儲過程自動創建它們,我很樂意分享! –

+0

兄弟,創建150個觸發器在這裏並不重要。我可以編寫腳本來創建它。但影響是非常重要的,因爲它是關鍵數據庫並且頻繁插入/更新。觸發導致我希望的問題 – Karthik