SQL Server 2000存储过程从唯一ID行获取唯一编号,避免并发请求问题

时间:2014-09-03 06:54:53

标签: sql tsql sql-server-2000

使用中央SQL Server 2000数据库,我有一个名为UNIQUE_ID_COUNTER的表。使用下面的表结构,它包含几行,保持分配给转发到另一个系统的不同类型对象的唯一ID。

UNIQUE_ID INT,
NAME VARCHAR(MAX)

234, "APPLES"
189, "PEARS"
...

每次从客户端调用存储过程时,UNIQUE_ID都会通过NAME选择,然后递增1。

由于我们在一些边缘情况下有很多高要求客户,其中多个客户同时发出此请求,我们会得到多个具有相同数字的UNIQUE_ID

如何避免这种情况但仍然确保存储过程返回正确的值并递增UNIQUE_ID列?

非常感谢您的帮助! :)

1 个答案:

答案 0 :(得分:0)

首选和推荐的解决方案非常简单:让数据库使用INT IDENTITY列处理所有令人讨厌的细节。

然后你永远不会有重复,你不需要担心增加你的计数器 - 一切都是为你处理的。