我的DB有这个问题。有两行记录具有完全相同的值,这对我来说没有意义,因为我试图使用MS SQL Server插入确切的值,客户端本身会提示错误 - > '违反UNIQUE KEY约束'IDX_XXX'。无法在对象'表XXX'中插入重复键。 该声明已被终止。'
所以我想知道在什么情况下或数据库设计将允许两个精确记录而没有任何错误。
数据如下:
Column 1 || Column 2 || Column 3 --------------------------------------- Ferrari || Rims || Tyre --------------------------------------- Ferrari || Rims || Tyre
答案 0 :(得分:2)
有一种方法可以检查数据是否确实是重复的。删除约束,然后重新创建它。如果确实是重复,则不会重新创建约束。很可能是2条记录存在差异的变化,您可能希望转到字符串的字节级别并比较字符串的每个字节。
在网格结果中无法看到Chr(13)或Chr(10),并且还有许多其他字符也无法看到。
我不确定这是否真的有用,但你可以试试这个:
Select convert(varbinary(max), [Column 1]), convert(varbinary(max), [Column 2]), convert(varbinary(max), [Column 3]) where <use your criteria to get the records>
这应该显示字符串中字符的HEX,你可以用那种方式比较那些字符串