创建了几张表,其中有一张表是课程表,里边包括:课程号(主码),课程名,课时,学分。
现在想设计一个触发器使,作用是限制开设的课程总学分必须在0到100之间
请问这个触发器该怎么设计,谢谢。
不用触发器,用约束行了
SQL code:
alter table 课程表
add constraint ck check(学分 between 0 and 100)
可以用check约束
如果课程号唯一,用约束就可以了。
抱歉,我刚才没有说清楚问题。每个开设的课程有相应的学分,比如课程1是1学分,现在要设计一个触发器使得这些课程的学分总和限制在0到100之间
SQL code:
create table 课程表(学分 int)
create function f_check()
returns int
as
begin
declare @i int
select @i=sum(学分) from 课程表
return @i
end
alter table 课程表
add constraint ck check(dbo.f_check() between 0 and 100)
insert 课程表 select 90
/*
服务器: 消息 547,级别 16,状态 1,行 1
INSERT 语句与 CHECK 约束"ck"冲突。该冲突发生于数据库"master",表"dbo.课程表"。
语句已终止。
*/
alter table 课程表
add constraint ck check(ing
后面是什么