理想情況下,您應該熟悉MSSQL Row-Level Versioning。MSSQL數據庫級版本號
我的問題是,是否有現成的機制(或者是有可能創造類似的東西)來獲取數據庫的版本?我寧願增量編號(如ROWVERSION
),但我會完全滿意最後一個查詢修改數據庫的散列(INSERT
或UPDATE
)。
理想情況下,您應該熟悉MSSQL Row-Level Versioning。MSSQL數據庫級版本號
我的問題是,是否有現成的機制(或者是有可能創造類似的東西)來獲取數據庫的版本?我寧願增量編號(如ROWVERSION
),但我會完全滿意最後一個查詢修改數據庫的散列(INSERT
或UPDATE
)。
沒有內置任何東西可以讓你這樣做。
對於刪除,插入和更新,每個表上都可以有一個觸發器,它使用一行更新表格上的單個列,每次添加1,但這會成爲瓶頸和減慢性能。我不會推薦它。
或者,你可能做的MDF和LDF文件的最後修改時間的東西,但你可能需要提升的訪問得到這一點,它不會依賴於任何單個的SQL語句。它也不會考慮到SQL已被緩存但尚未寫入的任何內容,因此也許它無法正常工作。
所以,我看不到這樣做的可靠和非侵入性的方式。但是,我實際上無法明白爲什麼你需要 - 對於版本= 123456的東西會做什麼?如果是版本= 123457呢?
感謝您的答覆。似乎我在這方面的選擇非常有限。 – Christian
你想達到什麼目的?每次數據庫的跟蹤更改或每次更改某些數據?請更具體地說明你想知道的內容? – vasin1987
我想跟蹤每一次數據改變...我是特定的,你不改變數據庫計劃與'INSERT' /'更新',不是?雖然有了這個想法,但我想指出,我想知道計劃何時改變。 – Christian
那麼哪一部分版本不能滿足您的需求,因爲每次更新數據都會發生變化?我用來跟蹤數據更改的另一個解決方案是每次更新應用程序更改數據時更新[ModifyDate]。這個提供的用戶不能直接編輯數據庫中的數據。 – vasin1987