zoukankan      html  css  js  c++  java
  • 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、在数据库进行数据合并时会比较麻烦。 

  • 相关阅读:
    百度地图画线----可以加上起始位置和终点位置(当前例子没有加)
    android更新SDK时候丢失annotations.jar 导致支持库报错
    java批量转换图片格式
    自定义环形进度条
    第三方账号登录--QQ登录,以及QQ微博账号登录
    矩阵的基本运算,相乘,逆,转置,伴随
    中值滤波和均值滤波C++代码
    opengl 反走样 混合 多重采样 blend multisample
    四元数和欧拉角,轴角对之间的相互转化
    PHP 接口(interface) 和 抽象类(abstract class)
  • 原文地址:https://www.cnblogs.com/vuenote/p/9566175.html
Copyright © 2011-2022 走看看