sql2000中自增字段问题!

华而不实 2011-08-11 10:46:44
我新建了一张表,其中id字段为自增字段,删除数据库中数据时,id字段的值也被删除了,但在重新往里面插入新数据时,id值不是从1开始,而是接着上次删除的值往上累加,例:自增字段id,现有值1、2、3、4,我删除了为4的记录,我新插入一条记录其id值为5,即使把1、2、3、4都删除,我插一条数据还是5,怎么解决这个问题,让其id值从1开始(全部删除之后)???
...全文
108 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
geniuswjt 2011-08-12
  • 打赏
  • 举报
回复
别用int用更大的应该就够用了。。。
还是truncate table安逸,重设初始值的你要考虑不会重复
oO寒枫Oo 2011-08-12
  • 打赏
  • 举报
回复
一般不建议使用这种自增列的 这种东西很容易跳的
大量的数据表用这个准没戏 跳几下你的ID就用完了 呵呵。
AcHerat 元老 2011-08-12
  • 打赏
  • 举报
回复
int不够用就用bigint吧!从1开始肯定够楼主用的了。
xiaojia19850414 2011-08-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 acherat 的回复:]
1、truncate table 可以。
2、删除自增列,新建可以。
3、设置自增的初始值,可以。
[/Quote]

想请教下:如果一个带有自增自列的表,己经增加到最大值,应该如何处理,设这个自增列的时候,就是为了能标识一行数据用的,如果用dbcc checkident(表名,RESEED,1) 重新设定起始值的话,就会出现重复的值
,对于以前写好的处理过程会有影响,比如查找ID=somevalue的值就不具唯一性了。
AcHerat 元老 2011-08-12
  • 打赏
  • 举报
回复
1、truncate table 可以。
2、删除自增列,新建可以。
3、设置自增的初始值,可以。
babydog01 2011-08-12
  • 打赏
  • 举报
回复
同意楼上的观点,如果数据量不是很大,用自增列,如果数据量很大的话还是用生成流水号。
--小F-- 2011-08-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xiaojia19850414 的回复:]
引用 3 楼 acherat 的回复:
1、truncate table 可以。
2、删除自增列,新建可以。
3、设置自增的初始值,可以。


想请教下:如果一个带有自增自列的表,己经增加到最大值,应该如何处理,设这个自增列的时候,就是为了能标识一行数据用的,如果用dbcc checkident(表名,RESEED,1) 重新设定起始值的话,就会出现重复的值
,对于以前写好的处理过程……
[/Quote]

如果有这样的需求的话 还是生成流水号比较好
chtzhking 2011-08-12
  • 打赏
  • 举报
回复
如果考虑你的唯一情况的话,建议用newid(),自增列貌似重新开始,会影响程序中的唯一性
wwwwb 2011-08-11
  • 打赏
  • 举报
回复
alter table 表名 drop column ID

alter table 表名 add ID int identity(1,1)

or
dbcc checkident(表名,RESEED,1)
rucypli 2011-08-11
  • 打赏
  • 举报
回复
truncate table以后就会从0开始

34,594

社区成员

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

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