标签归档:列约束

mssql sqlservr 数据库上数据列7大约束添加方法


摘要:
下文将依次说明数据表上各约束的使用方法,如下所示:
实验环境:sql server 2008 R2


在sqlserver数据表上,我们可以对列进行除类型以外的其它设置(默认值、是否为空、标识列、主键约束、外键约束、唯一约束、其它自定义约束)下文将依次讲述各约束的设置方法,如下所示:

例:小面的脚本将对数据进行以上7种约束的操作方法

  create table [maomao365.com]
   (
      keyId  int identity(1,1)  ,   ----标识列的设置
      writeDate datetime default getdate(), ---设置列默认值
      billNo  varchar(30)  primary key,---主键约束
      sortId  int  not null references maomaoMain(Id),---外键约束
      qty int not null , 
      name   varchar(100) not null unique  ---设置唯一约束 
   );
  go
   ---添加自定义约束 数量必须大于10
   alter table [maomao365.com] 
  add constraint chk_qty check(qty>10 )
 
  go 

mssql sqlserver check列只能输入手机号码的方法分享


摘要:
下文讲述sqlserver中,通过约束设置列只能输入手机号码的方法分享,如下所示:
实验环境:sqlserver 2008 R2


实现思路:
由于手机号码具有位数一定和每个号码都是由数字组成,所以我们可以在编写约束的时候,可以使用以上规则进行限制,如下所示:

  ---限制列mobileCN上只可输入中国手机号码
   
   create table [maomao365.com]
     (keyId int identity(1,1),
      mobileCN  varchar(30)
     )
     go
      
    ---添加手机号码列约束-限制手机号码必须为11位,为非0数字开头
     ALTER TABLE   [maomao365.com] 
       add CONSTRAINT 
            chk_mobileCNCheck
         (
            len(mobileCN) =11
              and mobileCN like '[1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
         ) 
     
     go
     truncate table  [maomao365.com] 
     drop      table  [maomao365.com]

mssql sqlserver 设置数据表中”性别”列只可输入”男”或”女”两种值


摘要:
下文讲述在sqlserver表设计中对列值进行限制的方法,如下所示:


在一些表设计中,我们经常需要对数据表中的值进行相应的限制,常见的业务场景如下所示 :
限制列只能输入 大于零的数值
限制列只能输入 “男”或”女”两个字段
限制列只能输入英文字母
限制列只能输入中文


下文将讲述数据列只能输入”男”或”女”字段的方法分享,如下所示:

       create table [maomao365.com](sex nvarchar(1))
        go
          
        ---对数据表中列sex设置约束,使其只可输入"男"或"女"两个数值
       
       ALTER   TABLE   [maomao365.com]   WITH   NOCHECK     
           ADD   CONSTRAINT  chi_maomao365_sex   CHECK   (sex in('男','女')) 
    
       go
       truncate table [maomao365.com]
       drop      table [maomao365.com]