SQLServer之PRIMARY KEY约束

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,独享型 2核4GB
简介: 原文:SQLServer之PRIMARY KEY约束PRIMARY KEY约束添加规则 1、在表中常有一列或多列的组合,其值能唯一标识表中的每一行,这样的一列或多列成为表的主键(PrimaryKey)。
原文: SQLServer之PRIMARY KEY约束

PRIMARY KEY约束添加规则

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

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

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

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

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

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

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

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

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

 

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

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

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

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

使用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);

使用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);

PRIMARY KEY约束优缺点

优点:

1、简单、效率高。 

2、保证数据完整性。

3、不会有空值。

4、不允许存在重复值。

缺点:

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

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

 

相关实践学习
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
2月前
|
SQL 数据库
sqlserver建库建表建约束,删库删表删约束的示例总结
sqlserver建库建表建约束,删库删表删约束的示例总结
|
2月前
|
数据库
SQLSERVER 2014 删除数据库定时备份任务提示失败DELETE 语句与 REFERENCE 约束“FK_subplan_job_id“冲突
SQLSERVER 2014 删除数据库定时备份任务提示失败DELETE 语句与 REFERENCE 约束“FK_subplan_job_id“冲突
|
2月前
|
SQL 数据安全/隐私保护 Python
SQL Server常见的约束条件
SQL Server常见的约束条件
74 0
|
12月前
|
SQL 存储 数据库
SQL Server——规则是什么?规则和约束有什么不同?
是单独的SQL Server对象,可以关联到一个或几个表中的一列或几列。它可以使用多种方式来完成对数据值的检验,可以使用函数返回验证信息,也可以使用关键字BETWEEN、LIKE和IN完成对输入数据的检查
|
存储 SQL Go
|
SQL 数据安全/隐私保护 Python
SQL Server常见的约束条件
SQL Server常见的约束条件
|
SQL 数据库
sqlserver建库建表建约束,删库删表删约束的示例总结
sqlserver建库建表建约束,删库删表删约束的示例总结
96 0
|
SQL 存储 Oracle
sql server系列_01表和约束
sql server系列_01表和约束
sql server系列_01表和约束
SQLServer:GUI方式、SQL语句两种方式建立视图和GUI方式设置主键、约束等
SQLServer:GUI方式、SQL语句两种方式建立视图和GUI方式设置主键、约束等
SQLServer:GUI方式、SQL语句两种方式建立视图和GUI方式设置主键、约束等
|
SQL Go 数据库
SQL Server使用sp_rename重命名约束注意事项
SQL Server使用sp_rename重命名约束注意事项在SQL Server中,我们可以使用sp_name这个系统存储过程重命名数据库中对象的名称。 此对象可以是表、 索引、 列、 别名,约束等数据类型(具体可以参考官方文档)。
1299 0