gpt4 book ai didi

sql-server - SQL Server 标识列 -> 值得到重用?

转载 作者:行者123 更新时间:2023-12-02 17:39:06 24 4
gpt4 key购买 nike

不确定我是否对这里的事情想得太多...但是..

我正在使用 MS Sql Server(我对 2008/2012/2014 的答案感兴趣)。

我有一个简单的表,它有一个 Identity 字段。每次插入新行时,它都会自动生成 Id。从 0 开始,增量为 1。基本内容。

每当我更新一行时,我都会先执行 DELETE,然后再执行 INSERT。 (是的,我知道 MERGE 并且可以使用它,但我不会)。

现在我在 Id: 11952106

有很多数字未被使用。例如。 1, 2, 3 .. 等..我确实使用了它们,但后来删除了它们

那么 .. Sql Server 是否会开始使用这些“差距”数字?(不确定技术术语)。

最佳答案

当 IDENTITY 达到您的数据类型的最大值时(对于 int 来说大约是 20 亿个值),插入将失败并显示“溢出”类型的消息。它不会环绕到零(或负 20 亿左右),也不会开始填补空白。

这件事发生在我几个月前。这是一个痛苦的屁股。现在,我们进行了监控,以预测我们的 IDENTITY 列何时会达到极限。

有一些技术可以将行打乱以重新使用间隙值。但是,这些必须由您自己编码。要非常小心外键,无论是显式的还是隐式的。

关于sql-server - SQL Server 标识列 -> 值得到重用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22903018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com