Mel*_*sus 3 sql sql-server constraints
有没有办法在SQL Server 2008中添加一个约束来验证如果用户试图在列A中输入一个值,它只能在列B为空时反之亦然
例
像这样的东西:
ALTER TABLE foo WITH CHECK ADD
CONSTRAINT CK_Foo_reason CHECK (
ColA IS NOT NULL AND ColB IS NULL
OR
ColA IS NULL AND ColB IS NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
编辑:问题更新后
这取决于在这种情况下是否允许两列都为NULL
ColA IS NULL OR ColB IS NULL
Run Code Online (Sandbox Code Playgroud)
编辑2:对于3列,其中一列必须为NOT NULL
我担心没有聪明的裤子回答.我添加了空格,希望能让它更清晰
ALTER TABLE foo WITH CHECK ADD
CONSTRAINT CK_Foo_reason CHECK (
ColA IS NOT NULL AND ColB IS NULL AND ColC IS NULL
OR
ColA IS NULL AND ColB IS NOT NULL AND ColC IS NULL
OR
ColA IS NULL AND ColB IS NULL AND ColC IS NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2154 次 |
| 最近记录: |