删除一条记录后,可是他还占有的主键的序列号,新进入的记录又要增加递增,怎么办?

xyc6838 2003-01-02 12:38:59
我在一个表里把主键定义为标识,其递增为1,当我增加一条记录时,其主键为1,可是我要删除这条记录,当我再插入一条记录时,此时该记录的主键序序列号为2了。我应该怎样改变这种状况?各位有何见解?
...全文
124 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
愉快的登山者 2003-01-02
  • 打赏
  • 举报
回复
1。若全部删除,用:TRUNCATE TABLE TABLENAME;不要用DELETE TABELNAME
2。在数据多时,只删除一条。就会出现标识缺少的现象,一般可以不用管他。若想连续,就要重新将数据导一遍
select * into #temp from tablename
truncate tablename
insert into tablename select * from #temp
drop table #temp
pengdali 2003-01-02
  • 打赏
  • 举报
回复
建议你不要打乱sql
你如果非要的话,你干脆不要设标识
自己写触发器按max(编号)+1的规则搞!

如果你还坚持的话你只有显示插入:
SET IDENTITY_INSERT 表名 ON ---关闭标识
insert .......
SET IDENTITY_INSERT 表名 OFF

或用DBCC CHECKIDENT (表, RESEED, 1)重建标识,但消耗太大!!!
playyuer 2003-01-02
  • 打赏
  • 举报
回复
dbcc checkident
niuhh 2003-01-02
  • 打赏
  • 举报
回复
如果你删掉了最后一条记录,但还要用序号的话,可以在删掉后运行dbcc checkident来恢复记数
LiuYuGuang2000 2003-01-02
  • 打赏
  • 举报
回复
SET IDENTITY_INSERT TableName ON

insert TableName(cols_Zizeng,...)
values (1,...)

SET IDENTITY_INSERT TableName Off
建议察看帮助:SET IDENTITY_INSERT
CoolAbu 2003-01-02
  • 打赏
  • 举报
回复
你可以不使用自增长的ID作主键,你人为的来控制ID的增长。
jinyefeng 2003-01-02
  • 打赏
  • 举报
回复
是的,没有其他办法的。这就是这样的

34,837

社区成员

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

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