Jason Selburg (7/25/2014)
Wrap your conditions in parenthesis and add an OR
CREATE TABLE CheckConstraintTest
(
CTId INT NOT NULL ,
Goal INT NULL ,
CONSTRAINT CK_CheckConstraintTest_Goal CHECK (
(CTId = 1 AND Goal IS NOT NULL )
OR
(CTId <> 1)
)
);
That's logicall correct but a bit redundant, you could just use
CREATE TABLE CheckConstraintTest
(
CTId INT NOT NULL ,
Goal INT NULL ,
CONSTRAINT CK_CheckConstraintTest_Goal CHECK (
(Goal IS NOT NULL)
OR
(CTId <> 1)
)
);
Tom