首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL2008 剔除表中的最后一条记录 标示字段还是在原来这条记录上加一

2013-06-19 
SQL2008 删除表中的最后一条记录 标示字段还是在原来这条记录上加一如题,自动编号的id字段(我自己设置的标

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
-------------------
a1
D2
c3

[解决办法]
DBCC CHECKIDENT ('表名',RESEED, 3)

热点排行