我在一个表里把主键定义为标识,其递增为1,当我增加一条记录时,其主键为1,可是我要删除这条记录,当我再插入一条记录时,此时该记录的主键序序列号为2了。我应该怎样改变这种状况?各位有何见解?
---------------------------------------------------------------
1。若全部删除,用:TRUNCATE TABLE TABLENAME;不要用DELETE TABELNAME
2。在数据多时,只删除一条。就会出现标识缺少的现象,一般可以不用管他。若想连续,就要重新将数据导一遍
select * into #temp from tablename
truncate tablename
insert into tablename select * from #temp
drop table #temp
---------------------------------------------------------------
是的,没有其他办法的。这就是这样的
---------------------------------------------------------------
你可以不使用自增长的ID作主键,你人为的来控制ID的增长。
---------------------------------------------------------------
SET IDENTITY_INSERT TableName ON
insert TableName(cols_Zizeng,...)
values (1,...)
SET IDENTITY_INSERT TableName Off
建议察看帮助:SET IDENTITY_INSERT
---------------------------------------------------------------
如果你删掉了最后一条记录,但还要用序号的话,可以在删掉后运行dbcc checkident来恢复记数
---------------------------------------------------------------
dbcc checkident
---------------------------------------------------------------
建议你不要打乱sql
你如果非要的话,你干脆不要设标识
自己写触发器按max(编号)+1的规则搞!
如果你还坚持的话你只有显示插入:
SET IDENTITY_INSERT 表名 ON ---关闭标识
insert .......
SET IDENTITY_INSERT 表名 OFF
或用DBCC CHECKIDENT (表, RESEED, 1)重建标识,但消耗太大!!!