用自定义函数,实现约束条件

--原贴:

http://community.csdn.net/Expert/topic/4402/4402384.xml?temp=.2275965

问题:
 现要为学校建立一个数据库,学校院系机构设置如下:一个系有若干个专业,每个专业一年只招一个班,每个班有若干个学生,要求建立一个关于系、学生、班级的数据库,关系模式为:
学生STUDENT (学号,姓名,年龄,班号)
班CLASS (班号,专业名,系名,入学年份)
系DEPARTMENT (系号,系名)
  请用SQL语文完成以下功能:
1、使用查询分析器建表,要求声明:
(2)每个班级的人数不能超过20人。
(3)学生的年龄介于16到30岁之间。

  请大虾帮忙怎样写这个约束语句。

--创建环境

Create Table STUDENT (
   学号 varchar(10),
   姓名 varchar(10),
   年龄 int,
   班号 int
)
go
Create Table CLASS (
   班号 int,
   专业名 varchar(10),
   系名 varchar(10),
   入学年份 int
)
go
Create Table DEPARTMENT (
   系号 int,
   系名 varchar(10)
)
go

--函数
--创建函数
create function f_check()
returns int
as
begin
      declare @num int
      select @num=count(学号) from STUDENT
             GROUP BY 班号
      return @num
end
go

--添加约束
alter table STUDENT add constraint student_学号_check
check(dbo.f_check()<=20)

alter table STUDENT add constraint student_年龄_check
check(年龄>=16 and 年龄<=30)


--删除环境
Drop table STUDENT,CLASS,DEPARTMENT

你可能感兴趣的:(sql,数据库,function,table,Class,Go)