建立主索引鍵

您可以使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 2014 中定義主鍵。 建立主索引鍵會自動建立對應的唯一叢集或非叢集索引。

本主題內容

開始之前

限制事項

  • 一份資料表只能有一個 PRIMARY KEY 條件約束。

  • PRIMARY KEY 條件約束內所定義的所有資料行,都必須定義成 NOT NULL。 如果未指定 Null 屬性,參與 PRIMARY KEY 條件約束的所有資料行,其 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 )