SQLServer之PRIMARY KEY约束

时间:2021-05-27 04:45:49
原文: SQLServer之PRIMARY KEY约束

PRIMARY KEY约束添加规则

1、在表中常有一列或多列的组合,其值能唯一标识表中的每一行,这样的一列或多列成为表的主键(PrimaryKey)。

2、一个表只能有一个主键,而且主键约束中的列不能为空值。

3、只有主键列才能被作为其他表的外键所创建。

4、一般情况下一个表中只能有一个主键。

使用SSMS数据库管理工具添加主键约束

使用SSMS数据库管理工具添加一列作为一个主键约束

1、连接数据库,选择数据表-》右键点击,选择设计。

SQLServer之PRIMARY KEY约束

2、在新窗口中,选择一行,右键点击-》选择设置主键-》点击保存按钮(或者ctrl+s)。

SQLServer之PRIMARY KEY约束

3、刷新表查看示例结果。

SQLServer之PRIMARY KEY约束

 

使用SSMS数据库管理工具添加多列作为一个主键约束

1、连接数据库,选择数据表-》右键点击-》选择设计。

SQLServer之PRIMARY KEY约束

2、在新窗口中-》按下ctrl键,选择多行-》右键点击-》选择设置主键-》点击保存(或者ctrl+s)。

SQLServer之PRIMARY KEY约束

3、刷新表查看示例结果。

SQLServer之PRIMARY KEY约束

使用T-SQL脚本添加主键约束

使用T-SQL脚本添加一列作为一个主键约束

当表中约束存在时,不可以直接添加主键约束,因为一张表只允许存在一个主键约束,如果需要添加主键约束需要先删除已存在的主键约束再添加主键约束。当表中不存在主键约束时,可直接添加主键约束。

语法:

if exists(select * from sysobjects where name=约束名)
alter table 数据库名.[dbo].表名 drop constraint 约束名;
alter table 数据库名.[dbo].表名 add constraint 约束名 primary key(列名 [asc|desc]);

示例:

--如果约束存在则删除约束,如果约束不存在则不删除
if exists(select * from sysobjects where name='idcon2')
alter table [testss].[dbo].[test1] drop constraint idcon2;
--添加约束
alter table [testss].[dbo].[test1] add constraint idcon2 primary key(id asc);

SQLServer之PRIMARY KEY约束

SQLServer之PRIMARY KEY约束

使用T-SQL脚本添加多列作为一个主键约束

当表中约束存在时,不可以直接添加主键约束,因为一张表只允许存在一个主键约束,如果需要添加主键约束需要先删除已存在的主键约束再添加主键约束。当表中不存在主键约束时,可直接添加主键约束。

语法:

--添加多列主键约束

if exists(select * from sysobjects where name=约束名)
alter table 数据库名.[dbo].表名 drop constraint 约束名;
alter table 数据库名.[dbo].表名 add constraint 约束名 primary key(列名 [asc|desc],列名 [asc|desc],......);

示例:

--添加多列主键约束
if exists(select * from sysobjects where name='idcon2')
alter table [testss].[dbo].[test1] drop constraint idcon2;
--添加约束
alter table [testss].[dbo].[test1] add constraint idcon2 primary key(id asc,name desc);

SQLServer之PRIMARY KEY约束

PRIMARY KEY约束优缺点

优点:

1、简单、效率高。 

2、保证数据完整性。

3、不会有空值。

4、不允许存在重复值。

缺点:

1、主键自增一般使用int型,有数据条数的限制。

2、在数据库进行数据合并时会比较麻烦。