检查检查另一列值的约束

时间:2013-06-24 15:07:06

标签: sql

我搜索了但是我找到的所有内容都没有回答这个问题,或者我并不理解

我正在创建一个表,我想在一些列上添加约束,如果另一列具有特定值,则需要它不为null。我现在拥有的是:

ColumnA NOT NULL CHECK (ColumnB = 8802 or ColumnB = 8804),

基本上,如果ColumnB等于这两个值中的任何一个,ColumnA必须有一个值,其余时间可以为空。

1 个答案:

答案 0 :(得分:2)

也许:

ALTER TABLE ADD CONSTRAINT A_B_Check
CHECK (
        ColumnA IS NOT NULL 
    OR (ColumnA IS NULL AND (ColumnB <> 8802 AND ColumnB <> 8804))
);