当前位置:文档之家› 约束和规则

约束和规则

给HC_操行分表增加约束唯一约束和聚集索引
首先唯一性约束不能为空
修改某列的定义
alter table HC_操行分表
alter column HC_姓名varchar(10)not null
go
alter table HC_操行分表
add constraint PK_caoxingfen primary key Clustered(HC_姓名) go
给操行分定义一个约束,操行分不能超过或不能低于分
alter table HC_操行分表
alter column HC_成绩int not null
go
alter table HC_操行分表
add constraint CK_checkNum
check(HC_成绩between 0 and 100)
go
---创建规则绑定到指定的列上
create rule CK_checkNum
as
@score1 between 0 and 100
GO
exec sp_bindrule'CK_checkNum','HC_操行分表.HC_成绩'
-给HC_会员信息表增加约束和规则,限制性别为男和女
规则
create rule SexLimit
as
@sexl in('男','女')
GO
exec sp_bindrule'SexLimit','HC_会员信息表.HC_性别'
GO
约束
alter table HC_会员信息表
add constraint CK_sexlimit
check(HC_性别in('男','女'))
go
----给电话增加约束为[][][][][][]的形式的约束
alter table HC_会员信息表
add constraint CK_phoNum
check(HC_电话like'[0-9][0-9][0-9][0-9][0-9]')
go
但是出现下面的错误.
消息547,级别16,状态0,第59 行
ALTER TABLE语句与CHECK约束"CK_phoNum"冲突。

该冲突发生于数据库"HabcComputer",表"dbo.HC_会员信息表",column'HC_电话'。

--原因是
你是先往建好了了的表里加约束的吧?这个提示是表示你表里面有不符合约束的数据。

建好了约束在插入数据也是这个提示。

所以你先把表里不符合约束的数据清除,再执行sql!
如果要是想删除规则的话,那么要先解除规则,然后再删除。

--解除规则
exec sp_unbindrule'HC_会员信息表.HC_性别'--指示解除那个绑定的列的规则,指示绑定的是那个列的数据的演示的操作
--删除规则
drop rule SexLimit
如何删除约束
alter table HC_会员信息表
drop constraint CK_sexlimit
-----如何增加unique约束
alter table HC_会员信息表
add constraint UQ_phone
unique(HC_电话,HC_自我介绍)--增加UNIQUE的约束的时候。

,给多个表增加约束的演示,多个列GO
---如何增加Foreign key约束
注意问题就是,必须把引用的键值设置成主键或是唯一键
必须有一个键值要设置成唯一键或是UNIQUE键
首先为HC_考勤表的HC_姓名增加主键
alter table HC_考勤表
add constraint PK_name
Primary key
(HC_姓名)
go
alter table dbo.HC_会员信息表
add constraint FK_name
foreign key(HC_姓名)
references dbo.HC_考勤表(HC_姓名)
go
如何增加索引
create [索引类型] index [索引姓名] on dbo.表(列)
UNIQUE索引,为表或视图创建唯一索引,不允许存在索引值相同的两行.视图的聚集索引必须是UNIQUE索引。

CLUSTERED创建一个对象.一个表或是视图只有一个索引,因为其行的物理排序和索引排序相同.
NONCLUSTREED创建一个标定表的逻辑排序对象。

指定物理排序的
use Vector_Supermarket_db
go
注意一个表只有一个聚集索引
create unique clustered index UC_index on VS_CusInf(VS_Cusname)
创建符合索引
create unique clustered index UC_index on VS_CusInf(VS_Cusname,VS_Cusnum) CLUSTERED|NONCLUSTERED
指定为PRIMARY KEY或UNIQUE约束创建聚集或非聚集索引。

PRIMARY KEY约束默认为CLUSTERED;UNIQUE约束默认为NONCLUSTERED。

相关主题