sql-server - 为什么我的 SQL Server 标识值被重用?

我有一个表,用于在将信息发送到另一个系统 (Dynamics CRM) 之前对信息进行排队。我将信息写入该队列,另一项服务出现并将数据写入 CRM。

我为主键使用了一个身份值,并将此键与信息一起保存,这样我就可以在出现任何问题时跟踪它的来源。从队列中取出数据后,我删除了记录。

但是,看起来 SQL Server 正在重复使用标识字段上的键。许多 id 只使用了一次,但也有很多被使用了两次,还有不少被使用了三次。显然,这使得通过该 ID 查找历史变得毫无用处。难道我做错了什么?我认为标识值应该是唯一的,表不应该重用它们。

如果有帮助的话,这里是列的属性。

关于主键属性的更多属性:

最佳答案

标识值在需要时在表中是唯一的。

如果您截断表,则 SQL 引擎不知道旧标识值。

如果您想要一个在表的生命周期内只使用一次的值,您应该考虑使用 GUID 或创建一个基于标识 + 日期时间的唯一键。

https://stackoverflow.com/questions/6738732/

相关文章:

scala - 是否可以对变量使用 match scala 操作?

php - 使用 Session 或 Cookie 登录

css - 带有 CSS float div 的多行

c# - 将文件流长度转换为 int

assembly - : operator do in assembly? 是什么

oracle - 我可以更改 Oracle 中的隔离级别吗?

scala - Scala 中的可观察 map

sql - 是否可以用简单的汇编语言处理器级代码编写 SQL 语句?

google-chrome - 谷歌浏览器 Cookie 扩展 : "Cannot call met

css - 通过 CSS 为仅带换行符的文本设置背景颜色