SQL ID 重置

11/21/2010 5:54:25 PM

delete tb where id>100
DBCC CHECKIDENT ('tb', RESEED, 1)
DBCC CHECKIDENT ('tb', RESEED)
--其结果将 tb 表的自增种子设置为当前表里标识列的最大值
--再次增加数据就会继续那个数字了


--实测
--建立测试环境
IF OBJECT_ID('tb') IS NOT NULL  DROP TABLE tb
GO
CREATE TABLE tb
(
 id int identity,
 code varchar(10), 
    CONSTRAINT PK_TB PRIMARY KEY (id)
)
GO
--插入测试数据
declare @i int
set @i=1
while @i<10
begin
INSERT TB SELECT 'A'+ltrim(@i)
set @i=@i+1
end

--查询
select * from tb
--结果
/*
id          code
----------- ----------
1           A1
2           A2
3           A3
4           A4
5           A5
6           A6
7           A7
8           A8
9           A9

(9 行受影响)
*/


--1  删掉 一部分
delete tb where id>5
DBCC CHECKIDENT ('tb', RESEED, 1)
DBCC CHECKIDENT ('tb', RESEED)
/*
检查标识信息: 当前标识值 '9',当前列值 '1'。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
检查标识信息: 当前标识值 '1',当前列值 '5'。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
*/