SQL Server和Identity列中的空白

我只是注意到,如果我在表中有一个标识列,当我插入新行时,如果存在不连续性,SQL Server 2008会自动填充序列.我的意思是,如果在我的标识列中我有1,2,5,6,如果我在表中插入其他两行,系统会自动将3,7放入标识列.

你知道如何控制这种行为吗?

谢谢

最佳答案
这是定义和记录的SQL Server行为,并且您可以做很多关于更改它的事情.你想改变什么?

IDENTITY列将保证唯一且不断增加的ID(只要您不会乱用它们) – 它们不保证任何其他内容.

SQL Server不会遇到在序列中发现“间隙”并填写它们的麻烦.无论如何,我认为这不是一个好主意 – 如果你确实有ID = 3的记录,然后将其删除?你真的想要下一条记录突然“回收”那个ID吗?在我看来,这不是一个好主意.

转载注明原文:SQL Server和Identity列中的空白 - 代码日志