【发布时间】:2018-06-21 10:34:32
【问题描述】:
我有一个表:带有列的 Sales_Table:
ProductKey Int not null,
UnitPrice decimal 18,2,
SalesAmount decimal 18,2
我正在尝试使用 alter table 向 ProductKey 列添加主键
ALTER TABLE SALES_TABLE
ADD PRIMARY KEY (ProductKey)
运行代码后出现以下错误:
消息 1505,级别 16,状态 1,第 9 行 CREATE UNIQUE INDEX 语句 由于为对象名称找到重复键而终止 “dbo.Sales_Table”和索引名称“PK__Sales_Ta__A15E99B36F3FE24F”。 重复键值为 (604)。
我可以做些什么来克服这个问题?提前致谢。
【问题讨论】:
-
主键必须是唯一的,但 SQL Server 会通知您,您的表中有不止一行的
ProductKey值为 604,因此它无法创建主键。 -
我大胆猜测,如果你有 1 个重复的密钥,你可能有很多;所以你可能需要看得更远,而不仅仅是
ProductKey604 -
运行
SELECT ProductKey, Count(*) FROM Sales_Table GROUP BY ProductKey HAVING COUNT(*) > 1将为您提供所有具有重复的 ProductKey 的列表 -
谢谢,我认为是 ProductKey 中的重复项导致了错误。感谢您的帮助!
标签: sql-server sql-server-2014