SQL2000中有一张表tb1,字段只有2个分辨是编号(主键,自动增长),姓名
先往里面录入100条数据后,然后随机删除其中的10条(编号随机),这样编号就断了(例如:1001,1002,1004,1007,1019…………),然后再插入新的数据后,编号是否可以从第一个断的后面继续(1003),而不是从1101(编号)开始,不知道重置语句是否可以完成 dbcc checkident(tb1,reseed,1000) 但是再insert数据时,系统会提示1001已经存在,主键不能重复,要执行该insert into语句3编,才能使编号从1003开始,在线等待,谢谢各位
先往里面录入100条数据后,然后随机删除其中的10条(编号随机),这样编号就断了(例如:1001,1002,1004,1007,1019…………),然后再插入新的数据后,编号是否可以从第一个断的后面继续(1003),而不是从1101(编号)开始,不知道重置语句是否可以完成 dbcc checkident(tb1,reseed,1000) 但是再insert数据时,系统会提示1001已经存在,主键不能重复,要执行该insert into语句3编,才能使编号从1003开始,在线等待,谢谢各位
--设置可以显式插入标识值
set identity_insert tb1 on
declare @id int
--取得断号
select @id = min(编号)+1 from tb1 a where not exists (select 1 from tb1 where a.编号+1 = 编号)
insert tb1(编号,姓名) values(@id, '')
set identity_insert tb1 off
记得结贴哦
--设置可以显式插入标识值
set identity_insert tb1 on
declare @id int
--取得断号
select @id = min(编号)+1 from tb1 a where not exists (select 1 from tb1 where a.编号+1 = 编号)
insert tb1(编号,姓名) values(@id, '')
set identity_insert tb1 off
不要直接删除数据了,加一个标识字段(找一个数据表中的未用的字段也行),需要删除的记录更新这个字段,再新增记录的时候先查找被标识的记录 UPDATE 就行了。 这样的弊端就是数据库中会保留一些无用的记录。