导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

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

xyc6838 2003-01-02 12:38:59
我在一个表里把主键定义为标识,其递增为1,当我增加一条记录时,其主键为1,可是我要删除这条记录,当我再插入一条记录时,此时该记录的主键序序列号为2了。我应该怎样改变这种状况?各位有何见解?
...全文
30 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
是的,没有其他办法的。这就是这样的
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告