约束的作用是防止脏数据。
实现效果和属性的set一样。
数据表中的写法是 列约束(作用是防止脏数据)
类.属性 等效于 表.列名
主键约束
列0 int primary key ,
不能设置主键,自动增长列等约束解决办法:工具》选项》设计器》阻止保存要求,去√
你关闭自动增长列 按 保存 就不再报错了。
非空约束
列0 int not null ,
唯一约束
列0 varchar(20) unique,
条件约束
列0 int check(列0>=6 and 列0<=18),
默认值约束
列0 nvarchar(20) default '地址不详',
自动增长列
列0 int identity(1000,2) primary key ,
外键约束
课分类id int references 课类(id) not null,
--条件是课分类id的值在 表 课类(id) 中存在,才能有效。
课分类id是外键
课类是主键
这样tb课表插入的数据中 课类id 的值受 tb课类 约束。
删除列约束
select * from sysobject
where parent_obj in
(
select id from sysobject where name='成绩表'
);
会获取到约束值 xxxxxxxx
alter table 成绩表
drop constraint xxxxxxxxxx