如下:
创建学生表和班级表
create table 班级(
编号 int identity constraint PK_班级_编号 primary key,
名称 varchar(30) constraint NK_班级_名称 not null constraint UK_班级_名称 unique,
说明 varchar(200)
);create table 学生(
学号 int identity constraint PK_学生_学号 primary key,
姓名 varchar(20) constraint NK_学生_姓名 not null,
性别 varchar(4) default '男' constraint NK_学生_性别 not null constraint CK_学生_性别 check(性别='男' or 性别='女' or 性别='未知'),
年龄 int constraint NK_学生_年龄 not null constraint CK_学生_年龄 check(年龄 between 18 and 28),
班级 varchar(30),
constraint FK_学生_班级 foreign key(班级) references 班级(名称)
);
--插入如下数据
insert into 班级 values('计算机科学与技术',null);insert into 学生 values ('张三',default,20,'计算机科学与技术');--执行如下语句时出错
update 班级 set 名称='数学' where 名称='计算机科学与技术'
服务器: 消息 547,级别 16,状态 1,行 1
UPDATE 语句与 COLUMN REFERENCE 约束 'FK_学生_班级' 冲突。该冲突发生于数据库 'master',表 '学生', column '班级'。
语句已终止。
创建学生表和班级表
create table 班级(
编号 int identity constraint PK_班级_编号 primary key,
名称 varchar(30) constraint NK_班级_名称 not null constraint UK_班级_名称 unique,
说明 varchar(200)
);create table 学生(
学号 int identity constraint PK_学生_学号 primary key,
姓名 varchar(20) constraint NK_学生_姓名 not null,
性别 varchar(4) default '男' constraint NK_学生_性别 not null constraint CK_学生_性别 check(性别='男' or 性别='女' or 性别='未知'),
年龄 int constraint NK_学生_年龄 not null constraint CK_学生_年龄 check(年龄 between 18 and 28),
班级 varchar(30),
constraint FK_学生_班级 foreign key(班级) references 班级(名称)
);
--插入如下数据
insert into 班级 values('计算机科学与技术',null);insert into 学生 values ('张三',default,20,'计算机科学与技术');--执行如下语句时出错
update 班级 set 名称='数学' where 名称='计算机科学与技术'
服务器: 消息 547,级别 16,状态 1,行 1
UPDATE 语句与 COLUMN REFERENCE 约束 'FK_学生_班级' 冲突。该冲突发生于数据库 'master',表 '学生', column '班级'。
语句已终止。
引用编号 别引用汉字
改为 班级ID
create table 学生(
学号 int identity constraint PK_学生_学号 primary key,
姓名 varchar(20) constraint NK_学生_姓名 not null,
性别 varchar(4) default '男' constraint NK_学生_性别 not null constraint CK_学生_性别 check(性别='男' or 性别='女' or 性别='未知'),
年龄 int constraint NK_学生_年龄 not null constraint CK_学生_年龄 check(年龄 between 18 and 28),
班级id varchar(30),
constraint FK_学生_班级 foreign key(班级id) references 班级(编号)
);
Add constraint FK_学生_班级 --约束名
Foreign key(班级id) references 班级(编号)
on update cascade --级联更新
on delete cascade --级联删除