SQL 序号自增长问题

笑笑称续缘 JAVA程序员  2015-08-31 11:59:26
现有SQL2008的表两列,第一列是序号,第二列是内容。想实现每次添加内容时,序号从1自增长,若删除一条内容,后面的序号重新排序。刚用了标识列来排列,但序号一直是自增,不能实现重新排序。请高手指导一下,该怎么实现这个功能。用的VS2010编写WEB服务应用程序。
...全文
123 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wylwyl1108 2015-09-06
用触发器, 每次 insert之后 触发 select 字段1,字段2,。。。 into #temp from 表 然后drop table 表 ,再 create table 表,再 insert into 表 select * from #temp
回复
xiaoxiangqing 2015-09-02
每次重排效率很低的,只能查询的时候再重排
回复
reenjie 2015-09-02

declare @Id int
select @Id=max(ID)+1 from tablename 
插入之前重新獲取最大ID,然後再加一,作為新的ID就OK。
回复
zbdzjx 2015-09-02
类似这样的语句: delete from table1 where id=10 update table1 set id=id-1 where id>10 每次删除都这样操作一次,但如果使用的人多,可能会产生断号、重号。
回复
道玄希言 2015-08-31
你如果想删除一条,之后的ID要重新更新, 这样设计不合理的, 需要程序在删除一条纪录后,將之后所有纪录的ID都重新更新一次。 你如果只是想在程序显示时, 有一个连续的ID号, 那查询语句直接 select ROW_NUMBER() over(order by 序号)as 序号, 内容 from tbl 就可以了。
回复
Tiger_Zhao 2015-08-31
ID是ID、序号是序号,不要混为一谈。
序号在查询时用 ROW_NUMBER() 函数计算。
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2015-08-31 11:59
社区公告
暂无公告