gpt4 book ai didi

sql - 在 SQL Server 2017 中使用标识列间隙

转载 作者:行者123 更新时间:2023-12-02 02:46:14 25 4
gpt4 key购买 nike

我的 table 上有几 1000 次跳跃。我已经弄清楚原因了,我会说晚了,这是频繁的服务器故障并重新启动并执行设置身份缓存=关闭

希望这些大跳跃不会发生。现在我想在新条目的间隙中重复使用这些数字,最好的方法是什么?改变种子值是可能的吗?请注意,我无法更改任何现有数据。另外,请注意添加新条目的速度很慢(每天少于 10 个条目),我可以密切关注这个数据库并在必要时再次手动更改种子值。

非常感谢。

最佳答案

您可以在脚本的开头和结尾使用 SET IDENTITY INSERT table_name ONSET IDENTITY INSERT table_name OFF 为每个实例编写脚本。完整的文档是 here .您一次只能在一张 table 上使用它。

更改种子不会有任何效果,因为将始终使用下一个最高值。

以下脚本将有助于识别差距。

SELECT  TOP 1
id + 1
FROM mytable mo
WHERE NOT EXISTS
(
SELECT NULL
FROM mytable mi
WHERE mi.id = mo.id + 1
)
ORDER BY
id

这是来自question/answer

更新

一种可能的策略是使数据库脱机,使用 SET IDENTITY INSERT 用所需的 ID 填充空白/跳转,否则使用最少/空数据,然后再次启用。然后使用空记录,直到全部用完,然后恢复到之前的方法。

关于sql - 在 SQL Server 2017 中使用标识列间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54840766/

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