SQL检查约束问题
我使用的是SQL Server 2008,我有一个包含三列的表:SQL检查约束问题,sql,sql-server,sql-server-2008,constraints,check-constraints,Sql,Sql Server,Sql Server 2008,Constraints,Check Constraints,我使用的是SQL Server 2008,我有一个包含三列的表:Length、StartTime和EndTime。我想在这个表上做一个检查约束,它说: if Length == NULL then StartTime <> NULL and EndTime <> NULL else StartTime == NULL and EndTime == NULL 如果长度==NULL,则 StartTime NULL和EndTime NULL 其他的 StartTim
Length
、StartTime
和EndTime
。我想在这个表上做一个检查约束,它说:
if Length == NULL then
StartTime <> NULL and EndTime <> NULL
else
StartTime == NULL and EndTime == NULL
如果长度==NULL,则
StartTime NULL和EndTime NULL
其他的
StartTime==NULL和EndTime==NULL
我开始尝试这样的事情:
Length == NULL AND StartTime <> NULL AND EndTime <> NULL
Length==NULL和StartTime NULL和EndTime NULL
显然这还不够,但即使是这个简单的表达式也无法验证。我得到一个错误:
“验证“检查测试长度”或“时间”时出错。是否要编辑约束?”
有没有关于如何执行此操作的想法?SQL Server中没有==运算符。检查null时,必须使用“is”
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))
请试试这个:
((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))
嗯