我刚注意到,如果我在表中有一个标识列,当我插入新行时,如果存在不连续性,SQL Server 2008会自动填充序列。我的意思是,如果在我的标识栏中我有1,2,5,6,如果我在表格中插入其他两行,系统会自动将 3 ,7添加到标识列中。
你知道如何控制这种行为吗?
感谢
答案 0 :(得分:8)
这是已定义和记录的SQL Server行为,并且您无法更改它。你想改变什么呢?
IDENTITY列将保证唯一且不断增加的ID(只要您不会乱用它们) - 它们不保证任何其他内容。
SQL Server将不在查找序列中的“间隙”并填写它们时遇到麻烦。无论如何,我认为这不是一个好主意 - 如果你确实有ID = 3的记录,然后将其删除?你真的想要下一条记录突然“回收”那个ID吗?在我看来,这不是一个好主意。