CREATE UNIQUE INDEX 语句因发现重复键而终止

Roo*_*mey 1 sql sql-server database-design duplicates having-clause

这是用于销​​售火车票的未完成的数据库。 在此处输入图片说明 我想在路由表中为 RouteId 创建主键,但出现异常:

CREATE UNIQUE INDEX 语句终止,因为找到了对象名称“dbo.Route”和索引名称“PK_Route”的重复键。重复的键值为 (1)。

但是没有另一个键。

我认为问题可能是最初我有 2 个表 Route 和 RouteStation,然后我删除了表 Route 并将 RouteStation 重命名为 Route。

本网站上的另一个主题对我没有帮助。我还尝试查看此表的键,但输出为空:

SELECT Col.Column_Name from 
    INFORMATION_SCHEMA.TABLE_CONSTRAINTS Tab, 
    INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE Col 
WHERE 
    Col.Constraint_Name = Tab.Constraint_Name
    AND Col.Table_Name = Tab.Table_Name
    AND Constraint_Type = 'PRIMARY KEY'
    AND Col.Table_Name = 'Route'
Run Code Online (Sandbox Code Playgroud)

GMB*_*GMB 6

问题在于route表格的内容。该消息告诉您,您在由约束引用的列中有重复值PK_Route- 可能是RouteId。您可以通过以下方式展示它们:

select RouteId from Route group by RouteId having count(*) > 1
Run Code Online (Sandbox Code Playgroud)