我已经做了一些搜索,但还没有找到确切的答案,我觉得必须是常见的情况,并且应该有一个“最佳实践”模式解决方案:在SQL Server 2008中只允许一个客户更新
我有一个用.NET 4(C#)和SQL SERVER 2008后端编写的应用程序。我拥有完全的控制权,并且不需要担心外部流程或应用程序。
从本质上讲,我要做到以下几点:
允许任何人看到客户和他们的订单(从主搜索表单返回)。
只要用户添加新订单或选择订单查看或编辑,就会在整个客户上锁定一个锁。其他用户将能够“只读”客户和任何订单。
当用户退出订单时,锁定被移除(通过退出屏幕或退出应用程序)。而且,这可能是最困难的部分,如果用户崩溃(可能锁只有有限的时间来确保这一点),锁就会被移除。
我看到了应用程序锁和事务,但我不知道要使用哪个,它们每个都似乎有问题。
那么锁定客户的最佳做法是什么,以及其他用户知道客户被其他用户锁定的方式是什么?
这就是电影/剧院/航空公司网站如何使用基于时间的“锁定”或“预订” – Kane
我正在寻找“锁定记录”,“解锁记录”和“记录锁定?内置于SQL Server的命令。但我怀疑没有这样的事情。接下来最好的是手动方法,并通过在获得锁的用户上设置一个定时器来改进它,他必须每30秒更新一次最后一次锁定时间。然后,应用程序过期超过1分钟的任何锁定将是完全安全的。 –