在现有表中添加具有主键的列

Joy*_*979 18 sql database primary-key sql-server-2008

我正在尝试将主键添加到现有表名中新添加的列Product_Details.

新列说:Product_Detail_ID(intnot null)

我正在尝试添加主键Product_Detail_ID(请注意:没有为此表分配其他主键或外键)

我正在尝试此查询,但收到错误.

ALTER TABLE Product_Details
ADD CONSTRAINT pk_Product_Detils_Product_Detail_ID PRIMARY KEY(Product_Detail_ID)
GO
Run Code Online (Sandbox Code Playgroud)

错误:

CREATE UNIQUE INDEX声明终止,因为重复的键被发现的对象名'dbo.Product\_Details'和索引名'pk\_Product\_Detils'.重复键值为(0).

我在这里错过了什么吗?我正在使用SQL Server 2008 R2.我将不胜感激任何帮助.

Ric*_*iwi 32

如果希望SQL Server自动为新列提供值,请将其设置为标识.

ALTER TABLE Product_Details DROP COLUMN Product_Detail_ID
GO
ALTER TABLE Product_Details ADD Product_Detail_ID int identity(1,1) not null
GO
ALTER TABLE Product_Details
add CONSTRAINT pk_Product_Detils_Product_Detail_ID primary key(Product_Detail_ID)
GO
Run Code Online (Sandbox Code Playgroud)


Cho*_*kho 5

在mysql中,我能够通过以下查询实现

ALTER TABLE table_name ADD new_column int NOT NULL AUTO_INCREMENT primary key