共用方式為


建立主鍵

您可以使用 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

若要建立主鍵

  1. 在 [物件總管] 中,以滑鼠右鍵按下您要新增唯一約束條件的數據表,然後按一下 [設計]。

  2. [數據表設計工具] 中,按下您要定義為主鍵之資料庫數據行的數據列選取器。 如果您想要選取多個資料行,請在單擊其他數據行的數據列選取器時按住 CTRL 鍵。

  3. 右鍵按一下欄的列選取器,然後選擇 設定主索引鍵

謹慎

若要重新定義主索引鍵,必須在建立新的主索引鍵前,先刪除所有現有主索引鍵的關聯性。 系統會顯示訊息警告您,作為此過程的一部分,現有的關聯性將會自動刪除。

主要鍵資料行是透過列選擇器中的主要鍵符號來識別的。

如果主索引鍵由一個以上的資料行組成,一個資料行中允許有重複的值,但是主索引鍵中所有資料行的組合值必須是唯一的。

如果您定義了複合索引鍵,主索引鍵中的資料行順序必須符合資料表所顯示的資料行順序。 然而,您可以在建立主索引鍵之後變更資料行的順序。 如需詳細資訊,請參閱 修改主索引鍵

使用 Transact-SQL

在現有的數據表中建立主鍵

  1. 物件總管中,連線到資料庫引擎實例。

  2. 在標準列上,按一下 [新增查詢]

  3. 複製下列範例並將其貼到查詢視窗中,然後按一下 [執行] 。 此範例會在數據行 TransactionID上建立主鍵。

    USE AdventureWorks2012;  
    GO  
    ALTER TABLE Production.TransactionHistoryArchive   
    ADD CONSTRAINT PK_TransactionHistoryArchive_TransactionID PRIMARY KEY CLUSTERED (TransactionID);  
    GO  
    
    

在新數據表中建立主鍵

  1. 物件總管中,連線到資料庫引擎實例。

  2. 在標準列上,按一下 [新增查詢]

  3. 複製下列範例並將其貼到查詢視窗中,然後按一下 [執行] 。 此範例會建立數據表,並在數據行 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)