如何制作这样的场景:
我有Order对象的表。 DB中有很多订单。有一些机制,几乎没有线程可以从DB获得下一个订单(但需要锁定,同样的订单不会被执行几次)。
如何在SQL Server级别中使一个线程读取行(顺序),从DB中删除它并将其返回到执行它的C#写入机制,当其他线程可以看到该行被锁定时,它会跳过那一行并采取下一个?
订单具有执行优先级,聚集索引位于优先级列。
这些东西将在存储过程中执行。
答案 0 :(得分:0)
我在表中添加了一个名为“locked_by_thread”的列,其中包含一个线程号,当没有线程将其锁定时,它将为null。你必须更经常地使用这个场景,但这就是我要做的。