我搜索了但是我找到的所有内容都没有回答这个问题,或者我并不理解
我正在创建一个表,我想在一些列上添加约束,如果另一列具有特定值,则需要它不为null。我现在拥有的是:
ColumnA NOT NULL CHECK (ColumnB = 8802 or ColumnB = 8804),
基本上,如果ColumnB
等于这两个值中的任何一个,ColumnA
必须有一个值,其余时间可以为空。
答案 0 :(得分:2)
也许:
ALTER TABLE ADD CONSTRAINT A_B_Check
CHECK (
ColumnA IS NOT NULL
OR (ColumnA IS NULL AND (ColumnB <> 8802 AND ColumnB <> 8804))
);