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、在数据库进行数据合并时会比较麻烦。
SQLServer之PRIMARY KEY约束的更多相关文章
- SQLServer 中有五种约束, Primary Key 约束、 Foreign Key 约束、 Unique 约束、 Default 约束和 Check 约束
一直在关注软件设计方面,数据库方面就忽略了很多,最近在设计数据库时遇到了一些小麻烦,主要是数据库中约束和性能调优方面的应用,以前在学习 Sql Server 2000,还有后来的 Sql Server ...
- SQL PRIMARY KEY 约束\SQL FOREIGN KEY 约束\SQL CHECK 约束
SQL PRIMARY KEY 约束 PRIMARY KEY 约束唯一标识数据库表中的每条记录. 主键必须包含唯一的值. 主键列不能包含 NULL 值. 每个表都应该有一个主键,并且每个表只能有一个主 ...
- sql primary key 约束
PRIMARY KEY 约束唯一标识数据库表中的每条记录. 主键必须包含唯一的值. 主键列不能包含 NULL 值. 每个表都应该有一个主键,并且每个表只能有一个主键. SQL PRIMARY KEY ...
- postgresql数据库primary key约束/not null约束/unique约束及default值的添加与删除、列的新增/删除/重命名/数据类型的更改
如果在建表时没有加primary key约束.not null约束.unique约束.default值,而是创建完表之后在某个字段添加的话 1.primary key约束的添加与删除 给red_pac ...
- SQL-W3School-高级:SQL PRIMARY KEY 约束
ylbtech-SQL-W3School-高级:SQL PRIMARY KEY 约束 1.返回顶部 1. SQL PRIMARY KEY 约束 PRIMARY KEY 约束唯一标识数据库表中的每条记录 ...
- mysql PRIMARY KEY约束 语法
mysql PRIMARY KEY约束 语法 作用:PRIMARY KEY 约束唯一标识数据库表中的每条记录. 环形直线电机 说明:主键必须包含唯一的值.主键列不能包含 NULL 值.每个表都应该有一 ...
- SQLServer之FOREIGN KEY约束
FOREIGN KEY约束添加规则 1.外键约束并不仅仅可以与另一表的主键约束相链接,它还可以定义为引用另一个表中 UNIQUE 约束的列. 2.如果在 FOREIGN KEY 约束的列中输入非 NU ...
- (转)sql 违反了 PRIMARY KEY 约束,不能在对象 中插入重复键
说明你的数据里面有重复记录 两种情况 1.已存在的表中和要导入数据之间的重复 这个时候可以通过在两个表之间建立关联,将主键级联找出重复记录 2.要导入的表中存在重复记录 可通过类似如下的语句将表中的重 ...
- 命名 PRIMARY KEY 约束
1.注释:如果您使用 ALTER TABLE 语句添加主键,必须把主键列声明为不包含 NULL 值(在表首次创建时). mysql> ALTER TABLE appcc_user ADD CO ...
随机推荐
- java设计模式(1)---总则
设计模式总则 一.概述 1.什么是设计模式 设计模式是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结. 解释下: 分类编目:就是说可以找到一些特征去划分这些设计模式,从而进行分类. ...
- 如何写好css系列之button
现代前端行业的发展,如果你在css的时候,还没有利用一些预编译工具,是否觉得自己太low了.但你是否考虑过搭建一套自己前端框架.可能你会想这是否有必要,因为基础有boostrap,组件库有:easyu ...
- 初学Java Web(2)——搭建Java Web开发环境
虽然说 html 和 css 等前端技术,是对于 Web 来说不可或缺的技术,但是毕竟更为简单一些,所以就不详细介绍了,没有基础的同学可以去菜鸟教程或者W3school进行自主学习,最好的方式还是做一 ...
- spring框架应用系列二:component-scan自动扫描注册装配
component-scan自动扫描注册装配 本文系作者原创,转载请注明出处:http://www.cnblogs.com/further-further-further/p/7717331.html ...
- iOS逆向开发(7):微信伪装他人
上一节小程介绍了微信在进入"附近的人"时修改位置信息的办法,这一次,小程来修改"自己"的信息,伪装成别人. 但是,这里的伪装只是"本地的伪装" ...
- centos系统安装第三方源EPEL
epel没安装呗 相当于扩展型软件仓库,EPEL (Extra Packages for Enterprise Linux,企业版Linux的额外软件包) 是Fedora小组维护的一个软件仓库项目,为 ...
- [一] java8 函数式编程入门 什么是函数式编程 函数接口概念 流和收集器基本概念
本文是针对于java8引入函数式编程概念以及stream流相关的一些简单介绍 什么是函数式编程? java程序员第一反应可能会理解成类的成员方法一类的东西 此处并不是这个含义,更接近是数学上的 ...
- 痞子衡嵌入式:ARM Cortex-M调试那些事(1)- 4线协议标准(JTAG)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式调试里的接口标准JTAG. 在结束<ARM Cortex-M文件那些事>系列文章之后,痞子衡休整了一小段时间,但是讲课的 ...
- 四种途径提高RabbitMQ传输数据的可靠性(二)
前言 上一篇四种途径提高RabbitMQ传输消息数据的可靠性(一)已经介绍了两种方式提高数据可靠性传输的方法,本篇针对上一篇中提出的问题(1)与问题(2)提出解决常用的方法. 本文其实也就是结合以上四 ...
- https 加密、http2.0、keep-alive
原文地址:https://ainyi.com/44 HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议 ...