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