建立一个关于系,学生,班级的数据库.关系模式如下:学生STUDENT(学号,姓名,年龄,班号)
班CLASS(班号,专业名,系名,入学年份)
系DEPT(系号,系名)问题如下:
使用查询分析器建表,要求声明:
1.每个表的主外码.
2.每个班级的人数不能超过20人
3.学生的年龄介于16-30岁之间
4.学生姓名不能为空,
5.只有班里没有学生的时候,才能删除该班级
班CLASS(班号,专业名,系名,入学年份)
系DEPT(系号,系名)问题如下:
使用查询分析器建表,要求声明:
1.每个表的主外码.
2.每个班级的人数不能超过20人
3.学生的年龄介于16-30岁之间
4.学生姓名不能为空,
5.只有班里没有学生的时候,才能删除该班级
按照你自己的要求在“企业管理器”建好这些表,然后 所有任务-〉生成SQL脚本
答案就出来了
每个班级的人数不能超过20人,或:学生的年龄介于16-30岁之间
班CLASS(ID,班号,专业名,系名,入学年份) 其中加个字段为主键自动编号create trigger oninsertclass on CLASS
for insert
as
declare @tmp int
select @tmp=count(*) from CLASS where 班号=(select 班号 from deleted)
if @tmp>20
begin
delete from CLASS where ID in (select id from deletetd)
end
学生表创建好后,用
ALTER TABLE student WITH NOCHECK ADD CONSTRAINT student_check CHECK (age>16 and age<30);
这样的语句就可以了。
另外,1和4应该没问题的吧?2和5恐怕要通过存储过程了。
tid int ,
CHECK (tid > 14 and tid < 20)
)
这样生成的这一列,插入的值就必须大于14且小于20,你在写的时候,可以作类似处理