您可以使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 2014 中定義主鍵。 建立主鍵會自動建立對應的唯一、叢集或非叢集索引。
本主題內容
開始之前:
若要建立主鍵,請使用:
開始之前
限制與制約
一份資料表只能有一個 PRIMARY KEY 條件約束。
PRIMARY KEY 條件約束內所定義的所有資料行,都必須定義成 NOT NULL。 如果未指定空值屬性,則參與主鍵約束的所有欄位將其空值屬性設定為 NOT NULL。
安全
權限
使用主鍵建立新的數據表需要資料庫中的 CREATE TABLE 許可權,以及建立數據表之架構的 ALTER 許可權。
在現有數據表中建立主鍵需要數據表的 ALTER 許可權。
使用 SQL Server Management Studio
若要建立主鍵
在 [物件總管] 中,以滑鼠右鍵按下您要新增唯一約束條件的數據表,然後按一下 [設計]。
在 [數據表設計工具] 中,按下您要定義為主鍵之資料庫數據行的數據列選取器。 如果您想要選取多個資料行,請在單擊其他數據行的數據列選取器時按住 CTRL 鍵。
右鍵按一下欄的列選取器,然後選擇 設定主索引鍵。
謹慎
若要重新定義主索引鍵,必須在建立新的主索引鍵前,先刪除所有現有主索引鍵的關聯性。 系統會顯示訊息警告您,作為此過程的一部分,現有的關聯性將會自動刪除。
主要鍵資料行是透過列選擇器中的主要鍵符號來識別的。
如果主索引鍵由一個以上的資料行組成,一個資料行中允許有重複的值,但是主索引鍵中所有資料行的組合值必須是唯一的。
如果您定義了複合索引鍵,主索引鍵中的資料行順序必須符合資料表所顯示的資料行順序。 然而,您可以在建立主索引鍵之後變更資料行的順序。 如需詳細資訊,請參閱 修改主索引鍵。
使用 Transact-SQL
在現有的數據表中建立主鍵
在物件總管中,連線到資料庫引擎實例。
在標準列上,按一下 [新增查詢] 。
複製下列範例並將其貼到查詢視窗中,然後按一下 [執行] 。 此範例會在數據行
TransactionID上建立主鍵。USE AdventureWorks2012; GO ALTER TABLE Production.TransactionHistoryArchive ADD CONSTRAINT PK_TransactionHistoryArchive_TransactionID PRIMARY KEY CLUSTERED (TransactionID); GO
在新數據表中建立主鍵
在物件總管中,連線到資料庫引擎實例。
在標準列上,按一下 [新增查詢] 。
複製下列範例並將其貼到查詢視窗中,然後按一下 [執行] 。 此範例會建立數據表,並在數據行
TransactionID上定義主鍵。USE AdventureWorks2012; GO CREATE TABLE Production.TransactionHistoryArchive1 ( TransactionID int NOT NULL, CONSTRAINT PK_TransactionHistoryArchive_TransactionID PRIMARY KEY CLUSTERED (TransactionID) ); GO如需詳細資訊,請參閱 ALTER TABLE (Transact-SQL)、 CREATE TABLE (Transact-SQL)和 table_constraint (Transact-SQL) 。