3

SQL Server 2008을 사용 중이고 Length, StartTimeEndTime의 세 열이있는 테이블이 있습니다. 분명히 이것은 충분하지 않습니다,하지만이 간단한 표현 것이다SQL CHECK 제약 조건 문제

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

:

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

나는이 같은 일을 시도하기 시작했습니다 나는 말한다이 테이블에 CHECK 제약 조건을 만들고 싶어 유효성을 검사하지 않습니다. 오류가 발생합니다.

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

이 작업을 수행하는 방법에 대한 아이디어가 있으십니까?

답변

3

SQL Server에는 == 연산자가 없습니다. 널 (null)를 확인하는 동안 당신이 사용해야하는이

이 시도하십시오 "입니다"

((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

4
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))