基于另一列的值的列中需要非空值的 SQL 检查约束

Sne*_*eet 6 constraint

我有一个包含以下两列的表格

  • OnSite BIT NOT NULL
  • ClientId INT NULL

我想补充一点,需要一个约束ClientIdNOT NULL,当OnSite为真(1)。

我在网站上找不到任何东西。

谢谢

Len*_*art 7

您想强制执行以下含义:

(OnSite=true) => (ClientId is not null)
Run Code Online (Sandbox Code Playgroud)

这可以改写为:

(OnSite=false) or (ClientId is not null)
Run Code Online (Sandbox Code Playgroud)

因此,您的约束变为:

CHECK ( OnSite=0 or ClientId is not null)
Run Code Online (Sandbox Code Playgroud)