当前位置: 代码迷 >> SQL >> SQL中怎么实现ID自动编号
  详细解决方案

SQL中怎么实现ID自动编号

热度:54   发布时间:2016-05-05 12:38:55.0
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)呢
  相关解决方案