简单 SQL 数据完整型 规则的应用一些小例子
create database 学生课程数据库on
(
name=xs,
filename='d:\xs_db.mdf',
size=5,
maxsize=10,
filegrowth=10%
)
log on
(
name=ss,
filename='d:\xs_log.ldf',
size=3,
maxsize=5,
filegrowth=10%
)
create table 学生专业表(
学号 CHAR(9) not null,
姓名 VARCHAR(10) not null,
年龄 TINYINT ,
性别 CHAR(2) ,
所在院系 VARCHAR(30) ,
专业 VARCHAR(40) ,
家庭电话 VARCHAR(15) ,
constraint pk1 primary key (学号),
constraint ch1 check (年龄 between 18 and 30 ),
constraint ch_sex check(性别 in ('男','女'))
)
create table 院系(
编号 int identity(1,1) not null,
院系 varchar(30)
)
alter table 院系
add constraint pk2 primary key (编号),
add constraint u1 unique(院系)
alter table 学生专业表
add constraint ug1 foreign key (所在院系) references 院系(院系)
insert into 院系(院系) values ('计算机系')
insert into 院系(院系) values ('旅游系')
insert into 院系(院系) values ('园林系')
insert into 院系(院系) values ('中文系')
insert into 院系(院系) values ('外语系')
insert into 院系(院系) values ('国际贸易系')
delect table 院系
CREATE rule 专业
as @ch4 in('计算机','电子商务','软件开发','网站开发')
sp_bindrule 专业 ,'学生专业表.专业'
alter table 学生专业表
add constraint uq2 unique (姓名)
alter table 学生专业表
alter column 姓名 varchar(10) not null
delete from 院系
create rule 学号
as @ch22 like 'sje[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
sp_bindrule 学号,'学生专业表.学号'
sp_unbindrule '学生专业表.学号'