Trigger
如何在表級別記錄 Access 中的數據更改?
我支持非營利組織的 Access 數據庫。我們有一些數據神秘變化的問題,並且有一些,嗯,友好的爭論,這是由不是最懂電腦的使用者還是由我的一些後台處理引起的。
我已經在 UI 級別針對這些條件添加了一些檢查,但我想在數據庫表級別進行一些檢查,以便在某些欄位發生更改時進行記錄。通過這種方式,我將知道更改是由使用者發起還是僅來自後台執行的更新查詢。通常我會使用
on update
觸發器,但據我所知,Access 不支持觸發器。Access 中是否還有其他可用的日誌記錄或類似觸發器的功能?
不幸的是,Microsoft Access 沒有觸發器,甚至沒有任何類似觸發器的東西。在我的腦海中,你有幾個沒有吸引力的選擇:
- 創建
DateModified
和UserModified
列,並更新您的程式碼以包含這些值。缺點是您只會知道最後一個更新記錄的人,並且不會查看歷史記錄。- 保留您的 Access 前端,並將您的表移植到 SQL Server Express 後端。這樣,您將能夠使用觸發器(以及備份作業和其他好東西)。
除了 LittleBobbyTables 方法之外,還有第三種選擇,它涉及
_audit
為每個正常表創建一個表並編寫一個完整的邏輯來支持它們,這樣當事情發生變化時,您可以在這些表中插入一條記錄來執行此操作。(您已經知道何時保存/更新/刪除記錄,是嗎?)當然,這就是“更大的數據庫”是如何做到的,這裡的缺點是您必須手動執行大量邏輯來模擬伺服器上的觸發器類型的工作。