SQL 序号自增长问题

nakupenda ai 2015-08-31 11:59:26
现有SQL2008的表两列,第一列是序号,第二列是内容。想实现每次添加内容时,序号从1自增长,若删除一条内容,后面的序号重新排序。刚用了标识列来排列,但序号一直是自增,不能实现重新排序。请高手指导一下,该怎么实现这个功能。用的VS2010编写WEB服务应用程序。
...全文
164 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
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() 函数计算。

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧