SQL CHECK约束问题

问题描述:

我正在使用SQL Server 2008,我有一个包含三列的表:Length,StartTimeEndTime。我想就这个表,说CHECK约束:SQL CHECK约束问题

if Length == NULL then 
    StartTime <> NULL and EndTime <> NULL 
else 
    StartTime == NULL and EndTime == NULL 

我已经开始尝试这样的事情:

Length == NULL AND StartTime <> NULL AND EndTime <> NULL 

这显然是不够的,但即使这样简单的表达式不验证。我得到的错误:

"Error validating 'CK_Test_Length_Or_Time'. Do you want to edit the constraint?"

任何想法如何去做到这一点?

SQL Server中没有==运算符。虽然检查空,你必须用 “是”

请试试这个:

((Length is null AND starttime is not null AND endtime is not null) OR 
(Length is not null AND starttime is null AND endtime is null)) 

HTH

CHECK ([Length] IS NULL AND [StartTime] IS NOT NULL AND [EndTime] IS NOT NULL 
     OR [Length] IS NOT NULL AND [StartTime] IS NULL AND [EndTime] IS NULL))