SQL SERVER 2012实现数据的完整性

ALTER TABLE student   --指定表student的列id为主键
ADD CONSTRAINT PK_id      --主键的名称;
PRIMARY KEY CLUSTERED (id) --(id不为空)指明clustered关键字时,插入的数据按id大小排序,否则(或者是NONCLUSTERED)按录入顺序排序;

ALTER TABLE student 
DROP CONSTRAINT PK_id  --删除主键;

ALTER TABLE student  --添加唯一性约束;同一列name的数据不能重复;同一列只能有一个约束;
ADD CONSTRAINT U_name
UNIQUE NONCLUSTERED (name)

ALTER TABLE student
DROP CONSTRAINT U_name;

ALTER TABLE student 
WITH NOCHECK ADD CONSTRAINT CK_SEX CHECK (sex='女' or sex='男')   --WITH NOCHECK代表不检查已有的数据,WITH CHECK检查现有的数据;

--添加数据时,有时不需要约束;只有check约束和foreign key约束可以使约束失效;
ALTER TABLE student NOCHECK CONSTRAINT CK_SEX
--添加完不需要约束的数据时,回复约束;
ALTER TABLE student CHECK CONSTRAINT CK_SEX

ALTER TABLE student    --添加默认值约束;
ADD CONSTRAINT DF_time 
DEFAULT (getdate()) FOR enterTime

  --实现参照完整性,即添加外键;
  ALTER TABLE dbo.tscore
  WITH NOCHECK ADD CONSTRAINT FK_score_stu
  FOREIGN KEY (studentid) REFERENCES dbo.student (id)
  ON UPDATE CASCADE         --级联操作,主表删除、更新时,从表对应的数据也一起删除、更新;
  ON DELETE CASCADE
  GO
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值