日期:2014-05-17  浏览次数:20418 次

SQL2008 删除表中的最后一条记录 标示字段还是在原来这条记录上加一
   如题,自动编号的id字段(我自己设置的标示字段),现添加了3条纪录,在添就是id就是4了,我把第3条纪录删除,再添加一条记录,但是还是从id字段从4开始,怎么让他从3开始。
   

------解决方案--------------------
Drop table #tb;
Create table #tb(ch char(1),id int identity(1,1));
Insert Into #tb(ch) values('a'),('b'),('c');
Delete #tb Where id = 2;
Go
----先查出不连续的最小值
Declare @MinLostNum as int;
Set @MinLostNum = (Select top 1 id
From #tb as t1
Where Not Exists(
Select *
From #tb as t2
Where t2.id = t1.id + 1))
Set IDENTITY_INSERT #tb On
Insert Into #tb(ch,id) Values('D',@MinLostNum+1);
Set IDENTITY_INSERT #tb Off
Select * From #tb
-------------------
a 1
D 2
c 3

------解决方案--------------------
DBCC CHECKIDENT ('表名',RESEED, 3)