我有一個數據庫表中的列,當我們說某些項被選中時,必須增加一列。但它可以被並行選擇,並且它必須從0開始的任何記錄。我的解決方案是從DB過程中增加值,但是我可以確定第一個過程設法在另一個過程需要加載值之前增加該值增加?我的意思是:從SQL Server:通過過程調用增加非標識int列
寫PROCEDURE1回t0 Value is 10
t1 Procedure1 valueToInc = Value
t2 Procedure2 valueToInc = Value
t3 Procedure1 valueToInC++
t4 Procedure2 valueToInC++
t5 Value = 11
t6 Value = 11
值是11,但是從過程2顯然也是11(需要保護12那裏)。
我也檢查過身份(屬性)和序列(Transact-SQL),但沒有任何東西似乎適合我。
編輯
什麼我正嘗試解決的是,我有一個控制檯應用程序 - TCP服務器和MSSQL數據庫,在那裏我有一個用戶表。每次單個用戶想要登錄時,我都必須增加用戶的loginCount字段。我知道,在這裏任何並行都不應該是可行的,或者可以從代碼管理,但有人告訴我必須通過數據庫來處理並行訪問,所以不僅僅是使用更新查詢。我有它作爲求職面試項目...
我想通過我的第一個解釋讓理解更容易,但它不會工作。
你是說你有一列,並不斷需要通過加1來改變它的值?身份不會在那裏幫助。我不得不說我從來沒有聽說過這樣的要求。無論你做什麼,你都需要處理併發問題,這取決於你真正想要做什麼,可能會非常具有挑戰性。 –
謝謝你的評論。我不確定是否經常是正確的詞,但有時會發生,一次兩個文件將是必要的,以處理 –
是否需要知道一行已被「選擇」多少次?從字面上選擇或者你的意思是用戶「挑選」在某處使用?還是這是一個樂觀的併發工具? – paulbarbin