SQL Server数据库中关于id自增长的有关问题

SQL Server数据库中关于id自增长的问题?

SQL Server数据库中关于id自增长的问题:

建立了一张表ifan,里面有字段id,和字段name。设置id为自增长。
SQL Server数据库中关于id自增长的有关问题

用SQL语句删除一条数据数据:
DELETE FROM tb_ifan WHERE id = 2


表中的内容改变:
SQL Server数据库中关于id自增长的有关问题


我想请教的是,怎么才能做到删除一条或多条数据之后,自增长的字段自动调整顺序,而不产生乱序。就是说,原来id的值是1, 2, 3, 4,那么删除除4之外的一条数据之后,id字段的值变为1, 2, 3。而不出现乱序的现象。
------解决思路----------------------
那样楼主就不能用自增字段了,可以用触发器来实现,每次删除后相应的更新id的值
------解决思路----------------------
这指望不了SQL Server,只能自己写代码维护
------解决思路----------------------
个人觉得楼主没有必要那样做,无非是查询里显示行号的,可以借助row_number()函数来实现
楼主sql server是2005以上版本的吧
------解决思路----------------------


--自己加到触发器吧。。
UPDATE a 
SET id = rownumber
FROM ifan  a INNER JOIN 
(SELECT id,row_number() over(order by id )  rownumber FROM ifan ) b
ON a.id = b.id