创建了几张表,其中有一张表是课程表,里边包括:课程号(主码),课程名,课时,学分。
现在想设计一个触发器使,作用是限制开设的课程总学分必须在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
后面是什么
相关问答:
如何在SQL2005中设定定时作业,比如说定时清理某些表的数据,
或者是定时的将某些表的数据导出excel!
在线等待,急急急,最好是详细步骤!
之前我做的作业有点问题!
帮UP
参考:http://hi.baidu.com/toiota ......
使用java在windows7 32位下连接MSSQL。
两台机器,windows7 32位,在控制面板里面全部设置语言和区域选项都english-unitedstates
唯一区别只有在安装SQL server 2008的时候 选择的字符集不一样,
exec sp_helpsor ......
我觉得mysql和sqlserver有共同的地方:
有个问题是关于表的锁问题:
进程A 进程B
select * from user where id in lock share mode(共享锁)
&nb ......
原SQL语句SQL code:
SELECT t6.FName '操作工',t1.FDate '日期',t5.FName '制单人',t3.FName '设备',t4.FName '班制',
t7.FBillNo '工艺指令单号',t8.FName '岗位',t2. ......
现在有一个部门表dept(部门名称,部门号。。)有一个人员表emp(姓名,人员编号,职位,薪资,部门)
emp表中的内容是这样的:
a 1 工程师 3000 软件部
b 2 普通员工 2000 硬件部
c 3 工程师 4000 硬件部
d ......