删除后怎样让ID递减
列表中存了信息 删除后怎样让ID递减ID 是自增的
ID
如 1 1条信息。。。。
2 2条信息。。。。
3 3条信息。。。。
4 4条信息。。。。
删除 1 后
怎么变为
1 2条信息。。。。
2 3条信息。。。。
3 4条信息。。。。
CREATE TRIGGER DELID ON TABLE FOR DELETE AS BEGIN IF @@ROWCOUNT=1 UPDATE TABLE SET ID=ID-1 WHERE ID>(SELECT ID FROM DELETED) ELSE BEGIN DECLARE @COUNT INT,@MIN INT ,@II INT SELECT @MIN=1 SELECT @COUNT=COUNT(*) FROM TABLE WHERE ID>@MIN SELECT @II=MIN(ID) FROM DELETED WHILE @MIN<=@COUNT BEGIN IF (SELECT COUNT(*) FROM TABLE WHERE ID=@II)=0 BEGIN UPDATE TABLE SET ID=@II WHERE ID=(SELECT MIN(ID) FROM TABLE WHERE ID>@II) SET @II=@II+1 SET @MIN=@MIN+1 END ELSE SET @II=(SELECT MIN(ID) FROM DELETED WHERE ID>@II) END END END当然也可以在删除之后,将表内的自增列删除,然后再新增自增列,可以看看TRUNCATE的用法