SQL2008:对表中Date类型字段建立约束总是报错
表A有两个字段:A1、A2,都是Date类型1、建立约束:A1<A2,提示约束错误:验证约束A时出错。2、建立约束:A1<'2011-01-01'同样报错。3、如果把数据...
表 A 有两个字段:A1、A2,都是Date类型
1、建立约束:A1<A2 ,提示约束错误:验证约束 A 时出错。
2、建立约束:A1<'2011-01-01' 同样报错。
3、如果把数据类型改成DateTime就可以了。
总之,Date类型不能建立比较大小的约束 展开
1、建立约束:A1<A2 ,提示约束错误:验证约束 A 时出错。
2、建立约束:A1<'2011-01-01' 同样报错。
3、如果把数据类型改成DateTime就可以了。
总之,Date类型不能建立比较大小的约束 展开
2个回答
展开全部
Date 类型应该也可以做约束。以下是我做的一个测试
CREATE TABLE [dbo].[temp_test](
[d1] [date] NULL,
[d2] [date] NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[temp_test] WITH CHECK ADD CONSTRAINT [CK_temp_test] CHECK (([d1]<[d2]))
GO
ALTER TABLE [dbo].[temp_test] CHECK CONSTRAINT [CK_temp_test]
GO
insert into temp_test values('2012-08-09','2012-08-01') -- Fail
insert into temp_test values('2012-08-09','2012-08-10') -- Success
CREATE TABLE [dbo].[temp_test](
[d1] [date] NULL,
[d2] [date] NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[temp_test] WITH CHECK ADD CONSTRAINT [CK_temp_test] CHECK (([d1]<[d2]))
GO
ALTER TABLE [dbo].[temp_test] CHECK CONSTRAINT [CK_temp_test]
GO
insert into temp_test values('2012-08-09','2012-08-01') -- Fail
insert into temp_test values('2012-08-09','2012-08-10') -- Success
更多追问追答
追问
“摆渡浮桥”的程序是可以通过,也成功建立了表和约束,但在SSMS中通过人机交互方式还是不行,比如对上面建立的约束再人机交互修改就报错。
追答
这就是在SSMS中建立的,并不是我手写的代码。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询