I got a problem with some code and I need you expertise ^^
I am making a database for the classic student,course,studies scenario.
I need to make this check constraint wich doesnt allow a student to study more than 45ECTS at a time
Here is what I got so far... :
ALTER function [dbo].[check_stud](@stId int, @ccode int) returns int as begin declare @coursepoints int; declare @studiespoints int; declare @return int; select @coursepoints = c.points from course c where c.code = @ccode select @studiespoints = sum(s.points) from studies s where s.id = @stId select @return = @coursepoints + @studiespoints; return @return end
And We also have the Check Constraint u put in after:
alter table studies add constraint pointscheck check ((dbo.check_stud(id,code)<(46)))
then we have the create tables just in case u need em' :
create table course(
code int,
cname varchar(25),
points int,
primary key(code));
create table prereq(
code int,
prereqcode int,
primary key(code, prereqcode),
foreign key(code) references course on delete cascade,
foreign key(prereqcode) references course(code));
create table student(
id int,
stype varchar(25) not null,
primary key(id),
check (stype in('swedishstudent', 'foreignstudent')));
create table swedishstudent(
id int,
pnr int not null,
name varchar(30),
primary key(id),
unique(pnr),
foreign key(id) references student on delete cascade);
create table foreignstudent(
id int,
name varchar (30),
country varchar (20),
primary key(id),
foreign key(id) references student on delete cascade);
create table studies(
id int,
code int,
points int,
primary key(id,code),
foreign key(id) references student on delete cascade,
foreign key(code) references course on delete cascade);
create table hasstudied(
id int,
code int,
grade varchar(2),
primary key(id,code),
foreign key(id) references student on delete cascade,
foreign key(code) references course on delete cascade,
check (grade in('U', 'G', 'VG')));
create table section(
code int,
sname varchar(30),
primary key(code,sname),
foreign key(code) references course on delete cascade);
create table assignment(
code int,
sname varchar(30),
aname varchar(30),
primary key(code,sname,aname),
foreign key(code,sname) references section on delete cascade);
Just can't put my finger on whats wrong... plz Help ^^


Sign In
Create Account


Back to top









