如何让列rid从新从1开始递增?

噯卟釋手 2006-10-31 04:58:50
已经删除了些行

看着不爽

重新从1开始

如何弄?!

哈哈~~~~~~

表名TB_Role 自增列rid
...全文
367 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
newfu 2006-11-01
  • 打赏
  • 举报
回复
很简单,你先取消RID的自增属性,再打开表把RID的第一个值改为1,然后再将RID改回自增属性,就OK啦。
噯卟釋手 2006-11-01
  • 打赏
  • 举报
回复
实际上我的序号ID也真没什么用

就是唯一的标识而已

哈哈~!~
  • 打赏
  • 举报
回复
引用:" 我想弄个存储过程 如果在删除行的时候 就自动把ID序号从新从1开始递增 这样看起来舒服点撒"
不知道你这样做有什么用 好像失去了 identity 列的意义
倒建议你 做个视图 第一行用 r_id=identity(int,1,1) 来代替 不用一直修改表 假如你表几十万行 那样的做法太不实用了
噯卟釋手 2006-11-01
  • 打赏
  • 举报
回复
我现在数据库的表已经有万多条记录了

其中删除了一部分

所以ID序号不连续了

我想弄个存储过程

如果在删除行的时候

就自动把ID序号从新从1开始递增

这样看起来舒服点撒
噯卟釋手 2006-11-01
  • 打赏
  • 举报
回复
看来也只有采取楼上大哥的方法啦

呵呵

没想到这个问题还有点抠脑壳哈
中国风 2006-11-01
  • 打赏
  • 举报
回复
楼主方法有两种:表名TB_Role 自增列rid
1、
select * into # from TB_Role
truncate TB_Role
alter table # drop COLUMN rid
insert TB_Role
select * from #
--drop table #
2、
select r_id=identity(int,1,1),所有列名(不包含r_id) into roy
from TB_Role
drop table TB_Role
EXEC sp_rename 'roy', 'TB_Role'--重命名表
噯卟釋手 2006-11-01
  • 打赏
  • 举报
回复
楼上大哥 我试过 好象仿佛不行
jackxing 2006-11-01
  • 打赏
  • 举报
回复
dbcc checkident 影响新数据,原来的不变
噯卟釋手 2006-11-01
  • 打赏
  • 举报
回复
实际情况就是这样的

1个表 有一列从1自增 现在我删除了其中N行

那自增列就不连续了撒

想让自增列重新从1开始递增

其他不变

怎么弄?!

噯卟釋手 2006-11-01
  • 打赏
  • 举报
回复
楼上大哥

我的实际数据表是TB_Role撒 它的自增列是rid撒

这里有我很多数据的

总不能真的去试吧

要真象第一位大哥说的那样

TRUNCATE TABLE tablename

那我的数据不全没了

所以

我建了个测试表aaa 它的自增列是aid撒
robin_yao 2006-11-01
  • 打赏
  • 举报
回复
---"怎么还是 2开始啊"
不可能,把你的建表语句弄出来

--aid aname
2b
3c

上面这个算什么,什么都看不出来
你的表名TB_Role吗 自增列rid怎么都看不到呢??
happinessdepig 2006-10-31
  • 打赏
  • 举报
回复
設置數據庫格式 Identity 即可
噯卟釋手 2006-10-31
  • 打赏
  • 举报
回复
怎么还是 2开始啊
噯卟釋手 2006-10-31
  • 打赏
  • 举报
回复
结果

aid aname
2 b
3 c
噯卟釋手 2006-10-31
  • 打赏
  • 举报
回复
我用的

dbcc checkident(aaa, RESEED, 0)


检查标识信息: 当前标识值 '0',当前列值 '0'。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

fcuandy 2006-10-31
  • 打赏
  • 举报
回复
robin_yao(我要多努力) ( ) 信誉:100 Blog 2006-10-31 17:30:00 得分: 0


本人测试通过的
dbcc checkident(表名, RESEED, 0)


这个是可以的.我一时没记起来.
robin_yao 2006-10-31
  • 打赏
  • 举报
回复
本人测试通过的
dbcc checkident(表名, RESEED, 0)
噯卟釋手 2006-10-31
  • 打赏
  • 举报
回复
fcuandy(长翅膀的不一定是天使,也可能是鸟人)

大哥你的方法倒可以啊 不过把第一列弄到最后一列去了撒

看斗还是不安逸
robin_yao 2006-10-31
  • 打赏
  • 举报
回复
看看这个命令:DBCC CHECKIDENT
我没试过!
fcuandy 2006-10-31
  • 打赏
  • 举报
回复
alter table tb drop column rid
alter table tb add rid int identity(1,1)
加载更多回复(6)

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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