• 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