本文概述
SQL Server主键是用于唯一定义记录的单个字段或字段组合。主键的任何字段都不能包含空值。一个表只能有一个主键。
你可以在CREATE TABLE语句或ALTER TABLE语句中定义主键。
使用CREATE TABLE语句创建主键
句法:
CREATE TABLE table_name
(
column1 datatype [ NULL | NOT NULL ] [ PRIMARY KEY ], column2 datatype [ NULL | NOT NULL ], ...
);
Or
CREATE TABLE table_name
(
column1 datatype [ NULL | NOT NULL ], column2 datatype [ NULL | NOT NULL ], ...
CONSTRAINT constraint_name PRIMARY KEY (column1, column2, ... column_n)
);
例:
创建一个表” cricketers”, 其中” cricketer_id”是主键。
CREATE TABLE cricketers
( cricketer_id INT PRIMARY KEY, last_name VARCHAR(50) NOT NULL, first_name VARCHAR(50) NOT NULL, salary MONEY
);
输出
你可以使用SELECT命令验证创建的表:
SELECT *
FROM [srcmini].[dbo].[cricketers]
输出
这里cricketer_id是主键。
你还可以使用第二种语法使用主键创建表:
例:
CREATE TABLE cricketers2
( cricketer_id INT, last_name VARCHAR(50) NOT NULL, first_name VARCHAR(50) NOT NULL, salary MONEY, CONSTRAINT cricketers2_pk PRIMARY KEY (cricketer_id)
);
输出
你可以使用SELECT命令验证创建的表:
SELECT *
FROM [srcmini].[dbo].[cricketers2]
输出
在主键超过一个字段的SQL Server中创建一个主键
例:
CREATE TABLE cricketers3
( last_name VARCHAR(50) NOT NULL, first_name VARCHAR(50) NOT NULL, salary MONEY, CONSTRAINT cricketers3_pk PRIMARY KEY (last_name, first_name)
);
输出
你可以使用SELECT命令验证创建的表:
SELECT *
FROM [srcmini].[dbo].[cricketers3]
输出
在这里, last_name和first_name都是主键。
使用ALTER TABLE语句创建主键
你可以使用ALTER TABLE语句仅在已经定义为NOT NULL的列上创建主键。
如果表的某列具有NULL值, 则不能添加主键而不删除并重新创建该表。
句法:
ALTER TABLE table_name
ADD CONSTRAINT constraint_name PRIMARY KEY (column1, column2, ... column_n);
例:
在表” cricketers2″中创建一个主键” cricketer_id”。
ALTER TABLE [srcmini].[dbo].[cricketers2]
ADD CONSTRAINT cricketers2_pk PRIMARY KEY (cricketer_id);
输出
它将在” cricketers2″表中创建一个主键” cricketer_id”。
评论前必须登录!
注册