日期:2014-05-17  浏览次数:20626 次

主键的列如何保持不间断
有一列主键PKID是标识列,已经设置标示增量为自动加一,所以这一列应该是顺序不间断的,但是一旦有了删除操作,就是出现不连续的现象,下一个记录的PKID与上一个不连续了,本来 PKID 应该是: 1、2、3、4、5、6、7、8、9的,会变为 1、2、3、7、8、9,如果设置才能使得这个PKID一直保持连续,即使是执行了删除操作以后?比如把后来增加的记录先填满删除的记录后,再接在最后自动增一?
------解决方案--------------------
alter table tb
drop column 主键列
go
alter table tb
add 主键列 int identity primary key
------解决方案--------------------
自增标识在表行里是有记录的,一个表里不可能生成两个相同的唯一标识,如果你需要连续可以查询的时候加排序编号,不要管增列是否连续。
------解决方案--------------------
主键是可能被别的表关联的,关联不上比关联错了要好
如果业务字段有这样的需求,不要用主键
另外,删除,最好不要真的删除,而是增加删除标志字段