可能重複:
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