2009-01-20 109 views
3

如果我得到的術語錯誤,請道歉。如何在MSSQL Server 2005中定義一個約束來強制一列中的唯一性取決於另一列?SQL Server - 根據另一列強制一列中的唯一性

E.g.考慮到最後兩列:

1 A 1 
2 A 2 
3 A 2 <- Disallow because '2' has already appeared alongside 'A' 
4 B 1 
5 B 2 

回答

7

試試這個:

CREATE TABLE tTable 
    (field1 CHAR(1) NOT NULL, 
    field2 INT NOT NULL, 
    UNIQUE (field1, field2) 
)
+0

我不認爲這解決了問題。 (如果我正在讀這個權利)在第三行將有獨特的領域1和2,但仍然失敗 – 2009-01-20 11:36:32

1

創建於2列的唯一約束?

這是最合乎邏輯的事情,因爲看起來這一列並不是唯一的,但2列的組合必須是唯一的。

0

不需要是主鍵,它只需要一個唯一的組合索引。