sql创建主键约束(转)

时间:2021-12-28 13:39:23
创建主键约束
在数据表中经常有一个列或多列的组合,其值能惟一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义PRIMARY KEY约束来创建主键。
1.使用企业管理器创建主键约束
操作步骤如下:
(1)打开企业管理器,选择“控制台根目录”→“SQL Server组”→“MRFC”→“数据库”节点。
(2)在“销售管理系统”中选择“表”,并在右边的详细列表中选择要创建约束的数据表,单击鼠标右键选择“设计表”命令,如图1所示。
sql创建主键约束(转)
图1  选择“设计表”命令
(3)在弹出的窗口中选择要设置为主键的列,可以通过快捷工具栏中的 按钮进行单一设定,还可以将列选择多个,并通过单击鼠标右键选择“设置主键”命令将多个列设置为主键,如图2所示。
sql创建主键约束(转)
图2  将多个列设置为主键
(4)设置完成后,单击快键工具栏中的 按钮保存主键设置,并关闭此窗口。
注意:将某列设置为主键时,不可以将此列设置为允许空,否则将弹出如图3所示的信息框。
sql创建主键约束(转)
图3  主键设置错误提示对话框
2.使用SQL语句创建主键约束
使用SQL语句创建主键约束可以在创建表(Create Table)或修改表(Alter Table)时进行  创建。
在修改表中创建主键约束语法:
ALTER TABLE table_name
ADD
CONSTRAINT constraint_name
PRIMARY KEY [CLUSTERED | NONCLUSTERED]
{(Column[,…n])}
参数说明:
 CONSTRAINT:创建约束的关键字。
 constraint_name:创建约束的名称。
 PRIMARY KEY:表示所创建约束的类型为主键约束。
 CLUSTERED | NONCLUSTERED:是表示为PRIMARY KEY或UNIQUE约束创建聚集或非聚集索引的关键字。PRIMARY KEY约束默认为CLUSTERED,UNIQUE约束默认为 NONCLUSTERED。
下面在指定的数据库中创建一个名为mytable的数据表,并在该数据表中将“userid”列设置为主键。
操作步骤:
(1)在操作系统中选择“开始”→“所有程序”→“Microsoft SQL Server”→“查询分析器”命令,打开查询分析器。
(2)在查询分析器的工具栏中选择要连接的数据库。
(3)在代码编辑区中编写如下代码。
SQL语句如下:
USE 销售管理系统    --引入数据库
GO
CREATE TABLE mytable    --创建表
(
USERID int CONSTRAINT pk_id PRIMARY KEY,    --创建主键约束
USERNAME char (20),    --数据列
USERPASS char (20),    --数据列
USERPHONE char (20),    --数据列
USERADDRESS varchar (50),    --数据列
USERLEVEL char(2)    --数据列
)
GO
说明:在上段代码中,CONSTRAINT pk_id PRIMARY KEY为创建一个主键约束,pk_id为用户自定义的主键约束名称,但名称必须是合法的标识符。
下面在mytable表中将USERLEVEL(用户级别)列设定为主键约束。
SQL语句如下:
USE 销售管理系统    --引入数据库
GO
ALTER TABLE mytable     --修改表
ADD     /*将USERLEVEL列设置为主键约束*/
CONSTRAINT pk_level
PRIMARY KEY CLUSTERED (USERLEVEL)
GO
说明:将某个数据列设置为主键约束时,该数据列不能为允许空,否则将会无法创建主键约束。
可以在查询分析器中写入如下代码将数据列设置为不允许空。
ALTER TABLE mytable     --修改表
ALTER Column USERLEVEL char (2) NOT NUL --将USERLEVEL数据列设置为不允许空