使用中央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
列?
非常感谢您的帮助! :)
答案 0 :(得分:0)
首选和推荐的解决方案非常简单:让数据库使用INT IDENTITY
列处理所有令人讨厌的细节。
然后你永远不会有重复,你不需要担心增加你的计数器 - 一切都是为你处理的。