我已經做了一些搜索,但還沒有找到確切的答案,我覺得必須是常見的情況,並且應該有一個「最佳實踐」模式解決方案:在SQL Server 2008中只允許一個客戶更新
我有一個用.NET 4(C#)和SQL SERVER 2008後端編寫的應用程序。我擁有完全的控制權,並且不需要擔心外部流程或應用程序。
從本質上講,我要做到以下幾點:
允許任何人看到客戶和他們的訂單(從主搜索表單返回)。
只要用戶添加新訂單或選擇訂單查看或編輯,就會在整個客戶上鎖定一個鎖。其他用戶將能夠「只讀」客戶和任何訂單。
當用戶退出訂單時,鎖定被移除(通過退出屏幕或退出應用程序)。而且,這可能是最困難的部分,如果用戶崩潰(可能鎖只有有限的時間來確保這一點),鎖就會被移除。
我看到了應用程序鎖和事務,但我不知道要使用哪個,它們每個都似乎有問題。
那麼鎖定客戶的最佳做法是什麼,以及其他用戶知道客戶被其他用戶鎖定的方式是什麼?
這就是電影/劇院/航空公司網站如何使用基於時間的「鎖定」或「預訂」 – Kane
我正在尋找「鎖定記錄」,「解鎖記錄」和「記錄鎖定?內置於SQL Server的命令。但我懷疑沒有這樣的事情。接下來最好的是手動方法,並通過在獲得鎖的用戶上設置一個定時器來改進它,他必須每30秒更新一次最後一次鎖定時間。然後,應用程序過期超過1分鐘的任何鎖定將是完全安全的。 –