mysql2008分数约束_关于SQL2008对表中列的约束

展开全部

你是要按这样的逻辑保证数据记录值中的“成绩”限e5a48de588b63231313335323631343130323136353331333335333133制为0~100,还是只是在查询出结果时按此逻辑显示?

如果要用此逻辑对数据记录进行限制,从而使“成绩值”控制在0~100,那么约束是无法实现的,它只会在有符号条件的记录写入或更新时发生异常,从而保证记录都符号约束的条件。要使用触发器(instead of触发器),分别在insert,update时触发,如果新记录的“成绩”值小于0则修改为0,大于100则修改为100。

触发器示例:create trigger tg_test_tb01 on test_tb01

instead of insert

as

set nocount on

insert into test_tb01

select i.user_name, case when i.score  100 then 100 else score end

from inserted i

go

而要查询时按此逻辑显示,则使用case when根据原值对结果进行修改: case when [成绩]  100 then 100 else [成绩] end,你还可以用这个建立一个视图,使用会更方便些的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值