我的表中有2列 - 开始日期和结束日期,它们都可以为空。如果两者都填写了值,我想确保结束日期大于开始日期。如何在SQL Server 2008中编写检查约束来执行此操作?
答案 0 :(得分:2)
直截了当的事情?
WHERE (enddate IS NOT NULL AND startdate IS NOT NULL AND enddate > startdate)
答案 1 :(得分:0)
试
ALTER TABLE dbo.yourtable ADD CONSTRAINT CK_yourtable_dates
CHECK (ISNULL(startd, SYSDATETIME) < ISNULL (endd, SYSDATETIME))
答案 2 :(得分:0)
Alter table dbo.your_table ADD CONSTRAINT CK_Start_Date_before_End_Date
Check (Start_Date is null OR End_Date is null OR Start_Date < End_Date)