您的位置:首页 > 数据库

SQL SERVER 2012实现数据的完整性

2016-07-10 21:56 381 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql server 2012