2013-08-06 70 views
0

我有一個在asp.net上編寫的Bug跟蹤系統,我需要跟蹤錯誤更新並顯示錯誤的歷史記錄,當前狀態,更新等...什麼是跟蹤SQL表更改的有效方法

所以,我需要知道哪個字段發生了變化,並對數據做了些什麼。 我創建了另一個表,它具有跟蹤表字段和新值, 等等改變我插入更新鍵(在另一個表上,指示誰更改它以及何時),更改了字段名稱和新值。

它的工作真棒與C#,但我需要更多的SQL解決方案。

例如,我的更改表中的值字段可以是X TABLE,Y TABLE的fk或我轉換爲字符串的簡單數字或字符串。

你在想什麼我的解決方案? 你能提供更好的嗎?

+1

像這樣的東西是高度供應商特定的 - 但* SQL *只是查詢語言,而不是數據庫產品。因此,請告訴我們具體數據庫***(SQL Server?MySQL?Postgres?Interbase?DB2?Sybase?Oracle?其他?)以及您正在使用的數據庫的哪個版本。 –

+1

您可以使用觸發器來響應數據更改,觸發器是100%供應商特定的。 –

+0

我使用SQL服務器。 –

回答

3

SQL Server提供更改數據捕獲功能(從文檔開始的好地方是here)。

該功能可以維護表(以及數據庫中的其他元素,如果需要)的更改表。當然,這樣的功能在修改數據時意味着開銷。但它似乎是你在找什麼。

+0

感謝您的幫助。 我想知道另一個數據,誰做的(僱員表的fk)和改變時間。 這可以提供給我嗎? –

+1

是不是隻在2008年的企業版? – podiluska

+0

@podiluska。 。 。我認爲是這樣,但這個功能圖表表明它受到其他版本的支持(http://msdn.microsoft.com/en-us/library/cc645993(v=sql.105).ASPX)。我懷疑我在那兒誤讀了一些東西。 –