建立和修改 UNIQUE 條件約束

建立資料表時,您可以建立 UNIQUE 條件約束做為資料表的一部分。如果資料表已經存在,您可以加入 UNIQUE 條件約束,前提是組成 UNIQUE 條件約束的一個或多個資料行只包含唯一值。資料表可包含多個 UNIQUE 條件約束。

如果 UNIQUE 條件約束已經存在,您可以修改或刪除它。例如,您可能希望資料表的 UNIQUE 條件約束參考其他資料行,或想要變更索引叢集的類型。

[!附註]

若要修改 UNIQUE 條件約束,您必須先刪除現有的 UNIQUE 條件約束,然後使用新的定義來重新建立。

當 UNIQUE 條件約束加入資料表現有的一個或多個資料行時,Database Engine 會檢查資料行中的現有資料,以確保所有數值都是唯一的。如果將 UNIQUE 條件約束加入包含重複數值的資料行內,Database Engine 會傳回錯誤訊息,而且不加入條件約束。

Database Engine 將自動建立 UNIQUE 索引,以強制執行 UNIQUE 條件約束的唯一性要求。因此,如果嘗試插入重複的資料列,Database Engine 會傳回錯誤訊息,告訴您違反了 UNIQUE 條件約束,並且不會將資料列加入資料表內。除非明確設定叢集索引,否則預設會建立一個非叢集索引來執行 UNIQUE 條件約束。

下列 CREATE TABLE 陳述式的摘錄顯示 Name 資料行的定義,對此資料行指定 UNIQUE 條件約束以確保數值是唯一的。

Name nvarchar(100) NOT NULL

UNIQUE NONCLUSTERED

若要移除條件約束所包含的一個或多個資料行內已輸入數值的唯一性要求,請刪除 UNIQUE 條件約束。如果相關聯的資料行已做為資料表的全文檢索索引鍵,您就不能刪除 UNIQUE 條件約束。

若要在建立資料表時建立 UNIQUE 條件約束

若要在現有的資料表建立 UNIQUE 條件約束

若要刪除 UNIQUE 條件約束

若要取得有關 UNIQUE 條件約束的資訊