检查两列的约束

问题描述 投票:0回答:1

我有一个表有两列:RowType(INT)和RefId(INT)。两列的值均为零或更多。

我需要检查一下:

If RowType == 1 Then RefId cannot be = 0

最好的方法是什么?

我看到我可以查看

CREATE TABLE (
  ...
  CONSTRAINT MyCheck CHECK (RowType + RefId <> 1)

要做到这一点,但可能是这种检查更通用的方式?

sql sql-server
1个回答
5
投票

您可以使用check约束:

alter table t add constraint chk_t_2cols
    check (rowtype <> 1 or refid <= 0);

或者,如果您愿意:

alter table t add constraint chk_t_2cols
    check (not (rowtype = 1 and refid > 0) );

注意:如果列可以是NULL,可能会略有修改。

© www.soinside.com 2019 - 2024. All rights reserved.