我爲int的標識字段的表,我有以下數據重組標識字段
ID Name
-------------
1 Item1
4 Item2
9 Item3
....
我要重新排序我的身份申請喜歡
1 Item1
2 Item2
3 Item3
...
我爲int的標識字段的表,我有以下數據重組標識字段
ID Name
-------------
1 Item1
4 Item2
9 Item3
....
我要重新排序我的身份申請喜歡
1 Item1
2 Item2
3 Item3
...
您無法更新現有標識值。 Identity_Insert僅用於允許您使用新插入來指定標識列。 最好的辦法是創建一個具有相同定義的新表(包括標識列),並將所有記錄減去標識列插入到新表中。然後刪除舊錶,並用sp_rename重命名新表。請注意,您必須使用此方法刪除任何外鍵。
作爲一個計時器,這個工作。 SELECT按新名稱排序,IDENTITY列將出現。如果你不得不繼續這樣做,那麼設計就會出現嚴重問題,或者你必須根據一些公式自己生成該ID。 – 2011-01-29 17:55:00
一種選擇是,添加一個新的整數字段來保存順序值,然後將原始列的標識插入打開,然後遷移新值。
SQL Server中IDENTITY列的侷限性之一是它無法直接更新。最好的選擇可能是創建一個新表。
一般來說,如果您關心值的排序,則不要使用IDENTITY,因爲控制排序太困難。請改用常規列。 SQL Server 2011以後版本支持的序列可以給你更多的控制權,並且不需要目標列是隻讀的。
數據庫不關心值是否連續。所有重要的是價值是唯一的,爲了參考的完整性。 – 2011-01-29 17:13:01