如何在多个客户端之间同步下一个生成的值?

时间:2016-02-17 14:27:41

标签: c# sql sql-server sql-server-2008 sql-server-2008-r2

我有一个Web服务,其中我有一个生成增量编号的方法。然后,最后创建的内容将保存在数据库中。因此,下次客户端请求新号码时,它会使用上次保存的号码并将其增加一个。

数字看起来像这样:

PREFIX-12345
PREFIX-12346
PREFIX-12347

这很好用,但是现在存在并发问题,如果两个或多个客户端同时调用该方法,那么它们可能会得到相同的数字。

我在想我可以创建一个存储过程,可以获取数字,生成下一个,然后以某种方式锁定它,所以如果同时有另一个请求,它将增加两个。

现在我的问题是我不知道如何锁定下一个号码,以便任何人试图同时获得一个号码,可以得到另一个号码吗?

编辑:我忘了提一下,表结构是这样的:

ID | LastSavedNumber
1  |     12345
2  |     12346
3  |     12347
4  |     12348

0 个答案:

没有答案