1
我使用幾個表中的rowversion
屬性進行更改跟蹤。定期進程查詢多個表,並將所有rowversion
上的聯合轉換爲BIGINT
數據類型(作爲計算列)。然後記錄讀取的最大數字,並在下一次查詢該數字較高的數字。SQL Server rowversion and order
我觀察到,在高併發情況下,有幾個線程正在寫入,一個線程正在查詢更改,有時最終會讀取更高的rowversion
值,然後寫入更低的數字。
低版本的值永遠不會被拾取,從而導致同步問題。 MSDN上
rowversion
文檔指出
的rowversion數據類型只是一個遞增數
想知道如果我可以依靠它是在完成交易或開始交易的時間增量? SQL Server 2012的
因此,爲什麼我在較舊的版本(失序)之前看到較新的值是因爲新的事務在較早之前提交?有關如何防止這種情況的任何想法? –
我不認爲你可以防止「無序」的'rowversion'數字,而不允許併發作者。同步是一個難題,我不知道如何解決。 –