4

我在 SQL 表中有一个自动增量主键,可以说表如下所示:

CREATE TABLE [Table] (--Identifier contains a space and uses a reserved keyword.
    [ID] [int] IDENTITY(1,1) NOT NULL ,
    [Name] [varchar](50) NULL, 
    CONSTRAINT [PK__Table] PRIMARY KEY CLUSTERED ([ID] ASC)
);

ID  |  Name|
1     John
2     Jack
3     Bill 
4     Joe

然后我删除第 2 行 Jack:

ID  |  Name|
1     John
3     Bill 
4     Joe

我想要实现的是更改 id 列,使表格看起来像这样

ID  |  Name|
1     John
2     Bill 
3     Joe

有没有办法做到这一点?

4

3 回答 3

4

我永远不会这样做,但你可以:

  1. 创建一个名为 ID2 的新的自增主键
  2. 删除 ID 列
  3. 将 ID2 列重命名为 ID
于 2013-05-22T12:40:29.317 回答
0

快速而肮脏的方法是,(我的方式)-->

select * into yournewtable from youroldtable order by yourIdentityColumn;

然后,打开 yournewtable 的设计,确保 yourIdentityColumn 是 Identity(1,1)。

然后,放下你的旧表。

然后,将 yournewtable 重命名为 youroldtable!达达!

于 2020-09-15T17:39:45.353 回答
-1
Set identity_insert Table off;
Update Table set ID = 3 where ID = 4;
...
Set identity_insert Table on;

其中表名是

于 2013-05-22T19:09:54.687 回答