我必须根据以下条件在表上创建一个检查约束。
1. 如果 ColumnX=1 那么 ColumnY 不应该为 NULL
2. 如果 ColumnX<>1 那么 ColumnY 可以为 NULL
我在下面尝试过,似乎没有检查值。
ALTER TABLE [dbo].[MyTable] WITH NOCHECK ADD CONSTRAINT [CK_MyTable_1]
CHECK (ColumnX<>1 OR(ColumnX=1 AND (ISNULL(ColumnY,0) <> 0)))
GO
ALTER TABLE [dbo].[MyTable] CHECK CONSTRAINT [CK_MyTable_1]
GO
不确定约束中的逻辑是否正确