【发布时间】:2019-02-23 10:47:37
【问题描述】:
我的桌子上有几个 1000 次跳跃。我已经找到了原因,我想说的比较晚,这是频繁的服务器故障并重新启动并执行
set identity cache=off。
希望这些大跳跃不会发生。现在我想在新条目的间隙中重用这些数字,最好的方法是什么?改变种子值是可能的吗?请注意,我无法更改任何现有数据。 另外,请注意添加新条目的速度很慢(每天少于 10 个条目),我可以密切关注这个数据库,并在必要时再次手动更改种子值。
非常感谢。
【问题讨论】:
-
为什么需要重复使用它们?
IDENTITY的目的是提供一个不断增加的值;不要使用每个值。如果交易失败,您是否也希望“倒退”? -
为什么要这样做?为什么你不能接受跳跃?
-
这些 ID 用于将每个人与我的应用程序中的一些文件(照片)链接起来,因此它们会暴露给最终用户,小跳跃是可以接受的,但大的“1000”跳跃对我来说相当麻烦用户出于某种原因。
-
我认为这些数字对用户来说并不重要。但是您可以考虑进行一次批量操作以修复它们。不要试图插入它们之间
-
我认为没有充分的理由这样做。用户可以而且确实会做出不明智的决定和要求。用户 ID 只是一个数字,仅此而已。那是什么数字是完全任意且毫无意义的。它们是否连续无关紧要;你应该教育你的用户知道这一点。
标签: sql sql-server primary-key uniqueidentifier sql-server-2017