2013-05-22 73 views
3

繼承人我的問題。SQL中的ReNumber自動增量列

我在SQL表的自動增量主鍵可以說,表這個樣子的

ID | Name| 

1  John 

2  Jack 

3  Bill 

4  Joe 

然後我刪除行2傑克

ID | Name| 

1  John 


3  Bill 

4  Joe 

而我要實現的是改變ID列所以桌子看起來是這樣的

ID | Name| 

1  John 


2  Bill 

3  Joe 

有沒有辦法做到這一點? 由於事先

+4

是的,有辦法做到這一點,但作爲一個經驗法則,我認爲如果主鍵上有引用記錄,你不應該改變主鍵 –

+1

,你不能刪除和修改它。 –

+1

你有沒有想過會根據這個特定表的PK [ID]發生什麼? – Freelancer

回答

3

我永遠不會做,但你可以:

  1. 創建一個名爲ID2
  2. 刪除ID列
  3. 重命名ID2列ID一個新的自動增量主鍵
+0

同意,永遠不會在生產中做到這一點,但好,簡單和超級簡單的答案 –

-1
Set identity_insert Table off; 
Update Table set ID = 3 where ID = 4; 
... 
Set identity_insert Table on; 

其中表名是