2013-05-22 72 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; 

其中表名是