2013-08-02 117 views
1

我有一個表從中刪除記錄。 問題是,當我刪除某個記錄時,它的ID也會飛走,所以表中的ID順序不再受到尊重。 我想要的是一個SQL Server過程,在刪除其中一個記錄後重新排列記錄。刪除中間記錄後重新填充SQL Server ID

例子:

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 

回答

5

你不想這樣做。 id應該是除識別行之外沒有意義的字段。你可能有其他的表,指的是id,他們會中斷。

相反,只是重新計算連續的值,當你查詢表:

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

好,解決了我的問題,謝謝! 你是對的不改變ID,壞主意!事實上,我只需要在網頁中顯示它,所以你的程序就可以明確地做到這一點。 –