首页 > 解决方案 > Microsoft SQL Server 中的 Identity(1,1) - 是否有实际理由使用 1,1 以外的值作为种子/增量?

问题描述

我正在教授 Microsoft SQL Server 课程,一名学生问我们是否有实际原因将自动增量设置为 1,1 以外的值(种子从 1 开始,增量为 1)。为什么我们会将种子设置为更高的值或增加 1 以外的值,是否有实际的原因?只要该值是唯一的,就没有关系吗?

如果没有实际原因,为什么我们可以选择在 Microsoft SQL Server 中为 Identity 设置这些值?

标签: sql-server

解决方案


如果您使用有符号整数并从 1 开始,那么您只使用了可用范围的一半。数据类型的默认值实际上应该是从最小值开始,例如 -20 亿对于 32 位 int。

在某些情况下,您可能希望合并来自多个表的数据。在这种情况下,每个表都应该保留一个单独的 ID 范围。您可以让每个表以不同的数字开始,以防止重叠。例如,一个从 1 开始,另一个从 10 亿开始。或者您可以对一个 (1,2) 使用奇数,对另一个 (2,2) 使用偶数。


推荐阅读