PRIMARY KEY 條件約束

資料表中通常會有一或多個資料行包含可唯一識別資料表中每個資料列的值。此資料行稱為資料表的主索引鍵 (PK),強制資料表具有實體完整性。當您建立或修改資料表時,可定義 PRIMARY KEY 條件約束來建立主索引鍵。

一個資料表只能有一個 PRIMARY KEY 條件約束,並且任何加入 PRIMARY KEY 條件約束的資料行都不可接受 Null 值。因為 PRIMARY KEY 條件約束保證唯一的資料,它們通常是定義在識別欄位上。

當您為資料表指定 PRIMARY KEY 條件約束時,Database Engine 會為主索引鍵資料行建立唯一的索引,以強制資料的唯一性。當主索引鍵用於查詢時,此索引也可讓您快速地存取資料。所以,選擇的主索引鍵必須按照建立唯一索引的規則。

若 PRIMARY KEY 條件約束定義於一個以上的資料行,那麼資料行中的數值可能會重複,但加入 PRIMARY KEY 條件約束定義的所有資料行的每個數值組合將是唯一的。

如下圖所示,Purchasing.ProductVendor 資料表的 ProductIDVendorID 資料行形成此資料表複合的 PRIMARY KEY 條件約束。這樣可確保 ProductIDVendorID 的組合是唯一的。

複合 PRIMARY KEY 條件約束

當您處理聯結時,PRIMARY KEY 條件約束會將一個資料表與另一個資料表建立關聯。例如,若要得知哪一個廠商供應哪種產品,您可以在 Purchasing.Vendor 資料表、Production.Product 資料表和 Purchasing.ProductVendor 資料表之間使用三向聯結。因為 ProductVendor 同時包含 ProductIDVendorID 資料行,所以 Product 資料表和 Vendor 資料表可以由它們與 ProductVendor 的關係來存取。