2010-08-09 56 views
0

我的代码有问题。 正如你所看到的,我尝试使用同一个表中的两列有一种CHECK约束,但似乎不起作用。 我的需求是只有在EffectiveStartDate>时才接受EffectiveEndDate中的值。检查两列

任何想法如何解决它?感谢您的支持! :-)

CREATE TABLE dbo.Test 
( 
EffectiveStartDate dateTime2(2)  NOT NULL, 
EffectiveEndDate dateTime2(2)  NOT NULL 
    CONSTRAINT CK_CmsSponsoredContents_EffectiveEndDate CHECK (EffectiveEndDate > EffectiveStartDate), 
); 
+0

约束似乎对我来说是正确的。什么不起作用?你能够插入开始日期之前的结束日期吗? '约束'之前缺少逗号 – Oded 2010-08-09 08:13:51

+0

? – 2010-08-09 08:14:30

+0

同一作者的相同问题 2010-08-09 08:15:26

回答

4

你必须在错误的地方逗号:

CREATE TABLE dbo.Test(  
    EffectiveStartDate dateTime2(2) NOT NULL, 
    EffectiveEndDate   dateTime2(2) NOT NULL, -- added missing comma 
    CONSTRAINT CK_CmsSponsoredContents_EffectiveEndDate CHECK (EffectiveEndDate>EffectiveStartDate) 
) 

在检查约束声明的末尾删除逗号。

+0

谢谢我真的没有注意到,现在工作谢谢 – GibboK 2010-08-09 08:22:15