1

我正在與一個存儲的過程工作:排隊請求到SQL Server存儲過程

  1. 確定表中的行的數量,其中chosenBy列爲空

  2. 緯紗之一這些行隨機

  3. 更新該行

  4. 的chosenBy列的行返回給客戶機

如何防止客戶在完全同時選擇的情況下選擇同一行?

我已經嘗試過各種表提示和隔離級別,但只是在客戶端得到死鎖異常。我只希望第二個電話等待幾秒鐘,直到第一個電話完成。

+0

本質上你是[使用表作爲隊列](http://rusanu.com/2010/03/26/using-tables-as-queues/),但它真的*需要是隨機的大大增加了這個問題。 –

+0

只要它看起來相對隨機(即它不是連續的),那就足夠了。 –

+0

如何使用'sp_getapplock'串行訪問存儲過程而不是嘗試管理併發性並避免死鎖的解決方案呢? –

回答