展开全部
你是要按这样的逻辑保证数据记录值中的“成绩”限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,你还可以用这个建立一个视图,使用会更方便些的。