根据其他列中的另一个值添加列中的值的约束

时间:2019-04-28 22:57:35

标签: sql sql-server tsql

我正在基于示例中的其他列中的其他值编写有关列中值的sql约束:

如果色谱柱更换零件='N / A',则更换公司必须为'N / A',反之亦然。 如果type ='obs',则LTB_Date和LTS_Date必须不为Null,并且 如果键入!='obs',则LTB_Date和LTS_Date必须为空

1 个答案:

答案 0 :(得分:0)

尝试像这样使用CHECK约束:

ALTER TABLE PCN_Table ADD CONSTRAINT CHECK(
  CASE
    WHEN Replacement_Part = 'N/A' THEN CASE WHEN Replacement_Company = 'N/A' THEN 1 ELSE 0 END
    ELSE 1
  END=1
  AND
  CASE
    WHEN [type] = 'obs' AND LTB_Date IS NOT NULL AND LTS_Date IS NOT NULL THEN 1
    WHEN [type] <> 'obs' AND LTB_Date IS NULL AND LTS_Date IS NULL THEN 1
    ELSE 0
  END=1
)