在SQL Server中为标识列设置种子值时是否有任何技术注意事项?
此列将是PK并标记为身份自动增量。
企业不希望在1处启动ID,因为它们将在查询字符串中公开显示并显示在多个页面上。使用更高的随机数使它看起来更好,这对我来说都是有意义的,我想确保我没有遗漏任何技术考虑。
这是我要做的事情的一个例子
--Reset manufacturer id to a Random 5 digit number
DECLARE @newId INT = (SELECT FLOOR(RAND() * 100000) + 10000 % 10000)
DBCC CHECKIDENT (Manufacturer, RESEED, @newId );
答案 0 :(得分:0)
从未来的某个随机数开始,我没有看到任何问题。
答案 1 :(得分:0)
总结一些评论到答案。
起始标识值需要考虑表中已有的任何值。由于ID会自动递增,因此如果ID过低,ID可能会与现有值发生冲突。
Ids序列中可能会出现较大的间隙。不太可能,高起始种子和许多间隙可能导致色谱柱的INT范围耗尽。然后app开始繁荣!
列上的任何索引都不应该关心它是从1还是99999开始。