更改主键和标识的表列

k-s*_*k-s 9 t-sql sql-server-2008

我已创建表,并希望更改该表.我想添加一个主键和identity(1,1).

我可以应用主键但应用标识会产生错误.有什么遗失?

ALTER TABLE MyTable ADD PRIMARY KEY (Id)
Run Code Online (Sandbox Code Playgroud)

如何使用主键添加标识?

Dam*_*ver 20

您不能更改数据库中现有列的定义,以添加IDENTITY属性(也不能删除它).您必须使用属性创建一个IDENTITY:

ALTER TABLE MyTable ADD NewID int IDENTITY(1,1) not null
Run Code Online (Sandbox Code Playgroud)

不幸的是,您无法将旧ID值分配给此新列.如果要分配ID值,然后让IDENTITY接管,最好创建一个具有所需结构的新表,然后从旧表导入数据(可以使用IDENTITY_INSERTIDENTITY列分配值).

然后,如果需要,您将删除旧表并重命名新表.

  • 如果**主键**也需要,`ALTER TABLE LookupStates ADD Id int IDENTITY(1,1)PRIMARY KEY not null (2认同)