SQL Server为非关键属性提供“重复键”错误?

我有一个数据库表products 5列。 Id是主键。在SQL Server Management Studio中,你可以清楚地看到这这里:SQL Server为非关键属性提供“重复键”错误?

我有一个productId = 69和Name = “草坪飞镖”。我试图插入一个新产品Id = 420和Name =“草坪飞镖”。我正在尝试使用标识插入,以便我可以指定插入产品的标识。所以名称是相同的,但Id是不同的。这应该没问题吧?

我正在使用LINQ-> SQL插入到C#控制台应用程序中。当我尝试用相同的Name但不同Id插入一些东西,我收到以下错误信息:

不能在对象插入重复键行“dbo.Products具有唯一 指数“IX_Name”。重复的键值是(草坪飞镖)。

为什么,如果它是非关键?

回答:

好吧,这比我做得更简单。感谢@rook指针。

尽管Name列不是主键,但它被指定为“唯一索引”。我在SQL Server Management Studio中查找错误的设置,所以我错过了它。我正在寻找“属性”。我需要做的是右键单击“名称”列并选择“索引/键...”选项。这会弹出一个窗口,我可以将属性Is Unique设置为“否”。

或者,由于我使用代码优先迁移,我可以从当在C#中定义的属性中删除数据的注释,并继续通过该路由更新DB。

前:

[Index(IsUnique = true)] 

[MaxLength(255)]

public string Name { get; set; }

后:

[MaxLength(255)] 

public string Name { get; set; }

以上是 SQL Server为非关键属性提供“重复键”错误? 的全部内容, 来源链接: utcz.com/qa/259224.html

回到顶部