SQL 唯一键违规

SQL Unique Key Violation

我遇到了唯一键冲突,我不确定为什么,这是我的情况。 我有一个包含以下字段的 table:

ID, LocationID, Name, Description, Dewey

ID 显然是主键, LocationID 是链接到 Location table 的外键,其他字段只是 varchar没有关联关系的字段。

当我插入一行时,LocationIDName 与 table 中的另一行具有相同的值,我收到此错误:

Violation of UNIQUE KEY constraint 'IX_InternalLocation'. Cannot insert duplicate key in object 'dbo.InternalLocation'. The statement has been terminated.

如果这些字段中的任何一个不同,我可以毫无问题地插入记录。这对我来说似乎很奇怪,因为这些行都不是 table 的唯一标识符。

出于某种原因,数据库似乎认为这些字段一起形成了一个键,但事实并非如此,当我查看 table 属性时,事实并非如此。任何帮助将不胜感激。

运行 这个查询:

SELECT tc.Constraint_Name, cc.Column_Name 
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS tc
INNER JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE cc 
   ON tc.CONSTRAINT_NAME = cc.CONSTRAINT_NAME
WHERE tc.CONSTRAINT_NAME = 'IX_InternalLocation' AND tc.CONSTRAINT_TYPE = 'Unique'

针对您的数据库。

你应该得到结果:

Constraint_Name                  Column_Name
----------------------------------------------------- 
IX_InternalLocationDateMexri     LocationID 
IX_InternalLocationYpallhlosId   Name

这意味着在这两列上放置了一个UNIQUE INDEX,禁止插入任何重复的对。