【发布时间】:2012-12-17 21:19:07
【问题描述】:
我正在尝试将主键添加到现有表名 Product_Details 中新添加的列。
添加了新列:Product_Detail_ID(int 和 not null)
我正在尝试将主键添加到Product_Detail_ID(请注意:此表没有分配其他主键或外键)
我正在尝试使用此查询,但出现错误。
ALTER TABLE Product_Details
ADD CONSTRAINT pk_Product_Detils_Product_Detail_ID PRIMARY KEY(Product_Detail_ID)
GO
错误:
CREATE UNIQUE INDEX语句终止,因为发现对象名称'dbo.Product\_Details'和索引名称'pk\_Product\_Detils'的重复键。重复键值为 (0)。
我在这里遗漏了什么吗?我正在使用 SQL Server 2008 R2。我将不胜感激。
【问题讨论】:
-
您的表在该列中有重复值,但主键要求该列中的值是唯一的。为了创建 PK,您必须删除重复项。
-
表格是否包含数据?在这种情况下,您必须确保新列具有唯一值,然后才能使其成为 pk 列。
-
您是否使用新值更新了该列?或者它们仍然是
0,如您的错误消息中所示。确保该字段中的 每个 值都不同于其他所有值... -
这条消息sooo明确指出这里出了什么问题……你读了吗?
标签: sql database sql-server-2008 primary-key