删除中间记录后重新设置SQL Server ID

时间:2013-08-02 13:02:08

标签: sql sql-server stored-procedures

我有一个表,我从中删除记录。 问题是当我删除某个记录时,它的ID也会飞走,因此表中不再遵守ID顺序。 我想要的是SQL Server过程在删除其中一个记录后重新排列记录。

示例:

ID                                              ID                     ID
1                                                1                      1
2  I delete record 2, i want to have this ===>   2  and NOT this :      3
3                                                3                      4
4                                                4                      5
5

1 个答案:

答案 0 :(得分:5)

你不想这样做。 id应该是除了标识行之外没有任何意义的字段。您可能有其他表引用id并且它们会中断。

相反,只需在查询表时重新计算顺序值:

select t.*, row_number() over (order by id) as seqnum
from t;