[var]
主键是唯一标识表中每行的一列或一组列。您可使用主键束缚为表创建主键。
如果主键仅包括一列,你可使用PRIMARY KEY束缚作为列束缚:
CREATE TABLE table_name (
pk_column data_type PRIMARY KEY,
…
);
pk_column data_type PRIMARY KEY,
…
);
如果主键有两列或多列,则一定要将主键束缚用作表束缚:
CREATE TABLE table_name (
pk_column_1 data_type,
pk_column_2 data type,
…
PRIMARY KEY (pk_column_1, pk_column_2)
);
pk_column_1 data_type,
pk_column_2 data type,
…
PRIMARY KEY (pk_column_1, pk_column_2)
);
每一个表只能包括一个主键,一个主键可以包括多个列,即多个列的组合不能重复。参与主键的所有列一定要定义为NOT NULL。如果未为所有主键列指定NOT NULL束缚,SQL Server会自动为这些列设置非空束缚。
[var]
以下示例创建了一个具有主键的表,主键由一列组成:
CREATE TABLE dbo.activities (
activity_id INT PRIMARY KEY IDENTITY,–主键
activity_name VARCHAR (255) NOT NULL,
activity_date DATE NOT NULL
);
activity_id INT PRIMARY KEY IDENTITY,–主键
activity_name VARCHAR (255) NOT NULL,
activity_date DATE NOT NULL
);
在表dbo.activities中,activity_id列是主键列,意味着这一列的值不能重复
IDENTITY属性用于activity_id列自动生成唯一的整数值。
下面创建一个由两列组成外键的新表:
CREATE TABLE dbo.participants(
activity_id int,
customer_id int,
PRIMARY KEY(activity_id, customer_id)
);
activity_id int,
customer_id int,
PRIMARY KEY(activity_id, customer_id)
);
在本例中,activity_id或customer_id列中的值可以重复,但两列中的每一个值组合都一定要是唯一的。
通常,表总是在创建时定义主键。但是,有时,现有表可能没有定义主键。在这类情况下,可使用ALTER TABLE语句向表中添加主键。比如示例:
先创建一个没有主键列的表:
CREATE TABLE dbo.events(
event_id INT NOT NULL,
event_name VARCHAR(255),
start_date DATE NOT NULL,
duration DEC(5,2)
);
event_id INT NOT NULL,
event_name VARCHAR(255),
start_date DATE NOT NULL,
duration DEC(5,2)
);
然后使event_id列成为主键:
ALTER TABLE sales.events
ADD PRIMARY KEY(event_id);
ADD PRIMARY KEY(event_id);
注意,如果
sales.events表已有数据,在将event_id列提升为主键之前,一定要确保event_id中的值是不重复的。
到此这篇关于SQL Server主键束缚(PRIMARY KEY)的文章就介绍到这了,更多相关SQL Server主键束缚内容请搜索之前的文章或继续浏览下面的相关文章希望大家以后多多支持!
本文来源:https://www.yuntue.com/post/154472.html | 云服务器网,转载请注明出处!

微信扫一扫打赏
支付宝扫一扫打赏