我用了如下语句生成一个Table,其中ID是个自动累加值:
CREATE TABLE table1( [ID] int IDENTITY(1,1) Not NULL, [NAME] varchar(50), PRIMARY KEY (ID) )
但问题是,如果删除表中一些数据,再次插入的时候,那个ID还是按以前的顺序递增。
比如,表中有 ID=1 ..... ID=100 共100条数据,现在我删除了50条,再次添加数据的时候,ID还是从101开始!!!我希望从51开始。
请问有办法解决么???
CREATE TABLE table1( [ID] int IDENTITY(1,1) Not NULL, [NAME] varchar(50), PRIMARY KEY (ID) )
但问题是,如果删除表中一些数据,再次插入的时候,那个ID还是按以前的顺序递增。
比如,表中有 ID=1 ..... ID=100 共100条数据,现在我删除了50条,再次添加数据的时候,ID还是从101开始!!!我希望从51开始。
请问有办法解决么???
go
如果是这样,用触发器也行,在插入数据之前处理也行,
那个50,就是表中存在的记录数,可以用select count(1) from tb 取得
DBCC CHECKIDENT ('table1',RESEED,select count(1) from t) 怎样写这个触发器呢?谢谢!
on tb
after delete
as
begin
declare @cnt int;
set @cnt=isnull((select count(1) from tb),1);
DBCC CHECKIDENT ('tb',RESEED,@cnt);
end
未测试的,你试试