可能重复:
Finding duplicate values in a SQL table如何查找sql表中是否存在唯一的对值?
我完全新的T-SQL和SQL一般,所以我希望有人能指导我在正确的方向规划。这里是我的问题..我有一个只有2列的表,AppliedBandwidthSourceKey和AppliedBandwithSource,为了简单起见,我将它们分别称为列A和B.
列A和B组成主键。当我尝试插入列A的值已存在的记录时,立即得到主键约束违规,并且如果列A不存在,但列B会得到唯一键约束违规。我的问题是如何检查表中是否存在“值对”?如果没有,那么就不要插入任何东西
我见过几种使用tsql的合并类似问题的解决方案,如果不存在语句,但我无法理解这个概念。任何帮助将不胜感激。
如果列A和B组成的主键和您将得到一个唯一的键违反约束,那么在B列上必须有一个唯一的键。主键必须是唯一的,但只要没有a值,您可以在列A或B中具有相同的值在表A中已经存在的列A和B中。我会检查桌子上的索引 - 我想不出在两列上有PK的好理由,并且对其中一个列有唯一的限制。或者,也许你刚刚混合了PK和索引(或者DBA疯了!) – Charleh 2012-07-10 15:38:56
我可能错误地指出了这个问题。看起来这两个领域应该是单独的独特的,我与PK和索引混在一起。 – 2012-07-10 16:36:42
在这种情况下,它听起来像是你需要一个唯一的值** BOTH ** PK和唯一键 - 因为你得到了PK违规,我会说PK是A列,唯一的键是B列 - 但是你说你只想知道一个特定的组合是否存在......有点混淆这个! – Charleh 2012-07-10 16:52:14