我有一个名为Phone
的表,其中包含两列Number varchar(32)
和Extension varchar(32)
。我想添加一个Constraint
,其中包含以下条件:
我添加了以下Constraint
以满足所有三个要求:
ALTER TABLE Phone
ADD CONSTRAINT RequirePhone
CHECK (
Number IS NULL AND EXTENSION IS NOT NULL
OR (Number IS NOT NULL AND Extension IS NULL)
);
上述constraint
符合前两个要求,但是,如果我提供Number
和Extension
,我会遇到约束异常。
我尝试过添加:
...
OR (Number IS NULL AND Extension IS NULL)
但我仍然得到同样的错误。
有关如何解决此问题的任何建议?
答案 0 :(得分:4)
你的最后一句不是
OR (Number is NOT NULL AND Extension IS NOT NULL)
答案 1 :(得分:1)
(1)..(3)相当于两个NULL都是禁止的,其余的都是OK 。
ALTER TABLE Phone
ADD CONSTRAINT RequirePhone
CHECK (Number IS NOT NULL OR Extension IS NOT NULL)
);