在本教學中,將學習如何使用SQL Server PRIMARY KEY
約束為表創建主鍵。
SQL Server PRIMARY KEY約束簡介
主鍵是唯一標識表中每一行的列或一組列。可以使用PRIMARY KEY
約束為表創建主鍵。
如果主鍵只包含一列,則可以將PRIMARY KEY
約束定義為列約束:
CREATE TABLE table_name (
pk_column data_type PRIMARY KEY,
...
);
如果主鍵有兩列或更多列,則必須使用PRIMARY KEY
約束作為表約束:
CREATE TABLE table_name (
pk_column_1 data_type,
pk_column_2 data type,
...
PRIMARY KEY (pk_column_1, pk_column_2)
);
每個表只能有一個主鍵。參與主鍵的所有列必須定義為NOT NULL
。 如果沒有為這些列指定NOT NULL
約束,SQL Server會自動為所有主鍵列設置NOT NULL
約束。
在創建主鍵時,SQL Server還會自動創建唯一的聚簇索引(如果指定,則為非聚集索引)。
SQL Server PRIMARY KEY約束示例
以下示例創建一個包含主鍵的表,該主鍵包含一列:
CREATE TABLE sales.activities (
activity_id INT PRIMARY KEY IDENTITY,
activity_name VARCHAR (255) NOT NULL,
activity_date DATE NOT NULL
);
在此sales.activities
表中,activity_id
列是主鍵列。activity_id
列包含唯一值。
IDENTITY
屬性用於activity_id
列以自動生成唯一的整數值。
以下語句創建一個名為sales.participants
的新表,其主鍵由兩列組成:
CREATE TABLE sales.participants(
activity_id int,
customer_id int,
PRIMARY KEY(activity_id, customer_id)
);
在此示例中,activity_id
或customer_id
列中的值可以重複,但兩列中的每個值組合必須是唯一的。
通常,表始終具有在創建時定義的主鍵。 但是,有時,現有表可能由於某種原因而沒有定義主鍵。 在這種情況下,可以使用ALTER TABLE
語句向表中添加主鍵。請考慮以下示例。
以下語句創建沒有主鍵的表:
CREATE TABLE sales.events(
event_id INT,
event_name VARCHAR(255),
start_date DATE NOT NULL,
duration DEC(5,2)
);
要將event_id
列作為主鍵,請使用以下ALTER TABLE
語句:
ALTER TABLE sales.events
ADD PRIMARY KEY(event_id);
上一篇:
SQL Server約束
下一篇:
SQL Server視圖