sqlserver数据库设计完整性与约束

 1 use StudentManageDB
 2 go
 3 --创建主键约束
 4 
 5 if exists(select * from sysobjects where name='pk_StudentId')
 6 alter table Students drop constraint pk_StudentId
 7 alter table Students add constraint pk_StudentId primary key(StudentId)
 8 
 9 --创建唯一约束
10 if exists(select * from sysobjects where name='uq_StudentIdNo')
11 alter table Students drop constraint uq_StudentIdNo
12 alter table Students add constraint uq_StudentIdNo  unique(StudentIdNo)
13 
14 --创建检查约束
15 if exists(select * from sysobjects where name='ck_Age')
16 alter table Students drop constraint ck_Age
17 alter table Students add constraint ck_Age  check(Age between 18 and 25)
18 
19 if exists(select * from sysobjects where name='ck_PhoneNumber')
20 alter table Students drop constraint ck_PhoneNumber
21 alter table Students add constraint ck_PhoneNumber  check(len(PhoneNumber)=11)
22 
23 
24 update Students set PhoneNumber='13099012876' where StudentId=10000
25 select * from Students
26 
27 --创建默认值
28 if exists(select * from sysobjects where name='df_StudentAddress')
29 alter table Students drop constraint df_StudentAddress
30 alter table Students add constraint df_StudentAddress default('地址不详') for StudentAddress
31 
32 insert into Students (StudentName,Gender,Birthday,Age,StudentIdNo ,PhoneNumber,
33 StudentAddress,ClassId)
34 values('李小璐','','1989-01-12',24,120229198901121315, '13099012876',default,1)
35 
36 insert into Students (StudentName,Gender,Birthday,Age,StudentIdNo ,PhoneNumber,
37 ClassId)
38 values('李小璐','','1989-01-12',24,120229198901121316, '13099012876',1)
39 
40 --外键约束
41 insert into StudentClass (ClassId,ClassName) values(1,'软件1班')
42 if exists(select * from sysobjects where name='fk_ClassId')
43 alter table Students drop constraint fk_ClassId
44 alter table Students add constraint fk_ClassId  foreign key (ClassId) references StudentClass(ClassId)
45 
46 select * from studentClass

 

转载于:https://www.cnblogs.com/Spinoza/p/10010059.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值