我有一个表,用于在将信息发送到另一个系统 (Dynamics CRM) 之前对信息进行排队。我将信息写入该队列,另一项服务出现并将数据写入 CRM。
我为主键使用了一个身份值,并将此键与信息一起保存,这样我就可以在出现任何问题时跟踪它的来源。从队列中取出数据后,我删除了记录。
但是,看起来 SQL Server 正在重复使用标识字段上的键。许多 id 只使用了一次,但也有很多被使用了两次,还有不少被使用了三次。显然,这使得通过该 ID 查找历史变得毫无用处。难道我做错了什么?我认为标识值应该是唯一的,表不应该重用它们。
如果有帮助的话,这里是列的属性。
关于主键属性的更多属性:
最佳答案
标识值在需要时在表中是唯一的。
如果您截断表,则 SQL 引擎不知道旧标识值。
如果您想要一个在表的生命周期内只使用一次的值,您应该考虑使用 GUID 或创建一个基于标识 + 日期时间的唯一键。
https://stackoverflow.com/questions/6738732/