更改主键和标识的表列

问题描述:

我创建了表并希望更改该表。我想添加一个主键和identity(1,1)更改主键和标识的表列

我可以应用主键但应用标识会给出错误。有什么缺失?

ALTER TABLE MyTable ADD PRIMARY KEY (Id) 

如何添加标识以及主键?

您无法更改数据库中现有列的定义,以添加IDENTITY属性(或将其删除)。你必须创建一个新IDENTITY属性:

ALTER TABLE MyTable ADD NewID int IDENTITY(1,1) not null 

不幸的是,你不就能够到老ID值分配给这个新列。如果要分配ID值,然后让IDENTITY接管,那么最好使用所需结构创建新表,然后从旧表导入数据(可以使用IDENTITY_INSERTIDENTITY分配值柱)。

如果需要,您可以删除旧表并重命名新表。

+0

是的,非常感谢。我试图给我的存在专栏添加身份。 – 2012-08-10 08:19:11

+1

[您可以将其作为仅用于元数据的更改](http://*.com/q/6084572/73226) – 2012-08-10 10:16:57

+2

如果还需要**主键**,则ALTER TABLE LookupStates ADD Id int IDENTITY(1, 1)PRIMARY KEY not null' – 2014-08-12 11:46:31