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