SQL中怎样实现ID自动编号
有一个问题,如果我把数据库中的一条记录删除了,比如原来有记录1,2,3,4,假如我把第2条记录删除了,那么id序号将会变成1,3,4,能不能让id序号自动连续排列,让id序号变成1,2,3,而不是跳过了中间的2。谢谢!!
[解决办法]
如果是在表的记录中,不能这样做。 删除 2 后需要把原来的 3,4,5 ... 100000000 这些记录都减一,显然并不科学合理。
一般来说数据库中这种编号只起一个标识作用。如果你想显示为连续的则应该在查询中或者程序中实现。
[解决办法]
SQL SERVER 中你可以用
select top 10 来得到前 10 个
select top 10 from (select top 20 * from tttt order by id ) order by id desc
[解决办法]
重置标识列:DBCC CHECKIDENT('表名',RESEED,1)
[解决办法]
编程时用这个语句可以取非连续序列最小后继值,自动是不可能的
select min(b) from
(select id+1 b from a
minus
select id from a)
[解决办法]
有一个笨方法,删除数据后,把ID列删除,然后再添加,设置还和之前一样。就会得到你想要的效果了。
[解决办法]
没必要这样。。。从编程角度上说,不科学
[解决办法]
你把那个ID字段设置成identity(1,1)呢