规则

规则是一个向后兼容的功能,用于执行一些与 CHECK 约束相同的功能。CHECK 约束是用来限制列值的首选标准方法。CHECK 约束比规则更简明,一个列只能应用一个规则,但是却可以应用多个 CHECK 约束。CHECK 约束作为 CREATE TABLE 语句的一部分进行指定,而规则以单独的对象创建,然后绑定到列上。也可以把规则绑定到用户自定义数据类型上。

创建规则并把规则绑定到表的某一列上

if exists(select name from sysobjects

          where name='rule1'and type='r')

    drop rule rule1

go

create rule rule1

as

@v>150 and @v<200

--使用规则,绑定到表的列上

sp_bindrule rule1 ,'stu.b_id'

--插入一条记录

select * from stu

insert into stu values (1141,'sad',169,169)

--更新记录

update stu 

set  b_id=13

--解除对表的绑定

sp_unbindrule 'stu.b_id'

注意:把规则绑定到表的某列上时,只是从创建规则起开始执行该规则,进行对该表的这个字段进行规则约束。对于表里以前存在的数据而言不进行规则的约束!

创建规则把规则绑定到用户自定义数据类型上

--使用规则,绑定到用户自定义数据类型上

--首先定义一个数据类型

exec sp_addtype mail ,'varchar(60)','not null'

--创建一个规则

if exists(select name from sysobjects

          where name='rule2'and type='r')

    drop rule rule2

go

create rule rule2

as

@value like '%_@_%.__%'

--绑定规则到用户自定义数据类型上

sp_bindrule rule2,'mail'

--创建一张表

create table message

(

   m_id int identity(1,1) primary key,

   m_name char(16) not null,

   m_mail mail 

)

--给表插入一条数据

insert into message values('aa','goudan513@sohu.com')   

--查看刚写的信息

select * from message  

--如果插入不符合规则的数据,则插入失败

insert into message values('aa','goudan513sohu.com')


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值