为澄清而编辑
第一部分我想根据规则自动更改数据:
对于每个区域,必须同时指定Area_one和Area_two,或者两者都未指定ex:要么它们都是NULL,要么都不是NULL - 必须是表级别。
到目前为止,我想出了:
constraint chk_Null check (Area_one is not null and Area_two is not null)
但是这样脚本就会拒绝任何插入的数据为空。
第二部分我想根据规则自动更改数据:
对于给定的值,当Value_one存在时,Value_two必须为NULL(反之亦然)
我写道:
constraint Value_chk check((Value_one IS NULL and Value_two IS NOT NULL)
or (Value_one is NOT NULL and value_two IS NULL))
但我不知道如何完成这些,或者我是否正确的方向。
先谢谢大家!
答案 0 :(得分:1)
无效或两者均为:
constraint chk_Null check (
(Area_one is not null and Area_two is not null) OR
(Area_one is null and Area_two is null)
)
要更改数据,您必须在触发器中执行此操作,因为常规检查约束将验证数据(并可能将其回滚)但不更新它。你的触发器必须在插入和更新时考虑提供的值都不为空(你会更新哪一个?)的情况。