我花了一天时间尝试调试问题,直到现在我才知道问题一直存在。我的表有一个唯一约束,它只强制唯一值作为目录号。但是,我似乎对在这种情况下构成独特性的内容没有很好的理解。我有两个产品编号MP1156和MP1156ZF。
Insert into IDWProductCodes( PRCEAN, PRCGTIN, PRCatalogNumber, PRCIsActive, PRIsReplaced, PrIsREPlacement,PRProductID)
Select
'11232', '23223', 'MP115BP', 1, 0, 0, '267F104C-6BA4-4C7E-A0C1-6615CBB9DA4C'
Insert into IDWProductCodes( PRCEAN, PRCGTIN, PRCatalogNumber, PRCIsActive, PRIsReplaced, PrIsREPlacement,PRProductID)
Select
'11232', '23223', 'MP115', 1, 0, 1, '267F104C-6BA4-4C7E-A0C1-6615CBB9DA4C'
Insert into IDWProductCodes( PRCEAN, PRCGTIN, PRCatalogNumber, PRCIsActive, PRIsReplaced, PrIsREPlacement,PRProductID)
Select
'11232', '23223', 'MP15', 1, 1, 1, '267F104C-6BA4-4C7E-A0C1-6615CBB9DA4C'
我收到一个错误:
消息 2627,级别 14,状态 1,第 5 行
违反 UNIQUE KEY 约束“UK_CNUMUNIQUE”。无法在对象“dbo.IDWProductCodes”中插入重复键。重复键值为 (MP115)。
发生的事情是每次我插入第一个键然后尝试插入第二个键时,SQL 假定它们是相同的并用第二个覆盖第一个键,这是我根本不想要的效果。
我真正想要的是能够在表格中输入不同的字符串(不重复)。我原以为只需要一个独特的约束,但现在我不确定。请问解决这个问题的更好或最好的方法是什么?