怎样把数据库中自动ID重新从1开始设,表里已有数据?谢谢

liuvb 2004-05-05 06:43:36
怎样把数据库中自动ID重新从1开始设,表里已有数据?谢谢
...全文
1979 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
widespread 2004-05-06
  • 打赏
  • 举报
回复
mark
8992026 2004-05-05
  • 打赏
  • 举报
回复
DBCC CHECKIDENT ('table_name', NORESEED) 不重置当前标识值。DBCC CHECKIDENT 返回一个报表,它指明当前标识值和应有的标识值。
DBCC CHECKIDENT ('table_name') 或
DBCC CHECKIDENT ('table_name', RESEED) 如果表的当前标识值小于列中存储的最大标识值,则使用标识列中的最大值对其进行重置。
DBCC CHECKIDENT ('table_name', RESEED, new_reseed_value) 当前值设置为 new_reseed_value。如果自创建表后没有将行插入该表,则在执行 DBCC CHECKIDENT 后插入的第一行将使用 new_reseed_value 作为标识。否则,下一个插入的行将使用 new_reseed_value + 1。如果 new_reseed_value 的值小于标识列中的最大值,以后引用该表时将产生 2627 号错误信息。
zjcxc 元老 2004-05-05
  • 打赏
  • 举报
回复
--测试

--测试数据
create table 表(id int identity(1,1),a varchar(10))
insert 表 select 'a'
union all select 'b'
union all select 'c'

--重置id
DBCC CHECKIDENT (表, RESEED, 1)

--插入数据
insert 表 select 'aa'
union all select 'bb'
union all select 'cc'

--显示结果
select * from 表

--删除测试
drop table 表


/*--测试结果
id a
----------- ----------
1 a
2 b
3 c
2 aa --这里不是已经重置了吗? 重置当前的是1,新增的就是2
3 bb
4 cc

(所影响的行数为 6 行)
--*/
8992026 2004-05-05
  • 打赏
  • 举报
回复
truncate table 表 会删除数据,小心哦

8992026 2004-05-05
  • 打赏
  • 举报
回复
有数据一定不能从1开始

liuvb 2004-05-05
  • 打赏
  • 举报
回复
zjcxc(邹建) :你好
我试了怎么不行? 谢谢
zjcxc 元老 2004-05-05
  • 打赏
  • 举报
回复
--如果表中的语句还要,用下面的语句:

DBCC CHECKIDENT (表名, RESEED, 1)
zjcxc 元老 2004-05-05
  • 打赏
  • 举报
回复
如果表中的数据不要了,用下面的语句:

truncate table 表

34,575

社区成员

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

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