为清楚起见进行了编辑
第一部分我想根据规则自动更改数据:
对于每个区域,必须同时指定Area_one和Area_two,或者两者都不指定,例如:它们要么都是 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))
但我不确定如何完成这些,或者我是否在正确的方向上。
提前感谢大家!
两者都为空或两者都不是:
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)
)
要更改数据,您必须在触发器中执行此操作,因为常规检查约束将验证数据(并可能回滚数据(但不更新数据。您的触发器必须在插入和更新时,并考虑提供的值都不为 null 的情况(您将更新哪一个?