我有两个日期列:“开始日期”和“完成日期”。
我想确保对于一个主键(在我的情况下是复合键),“完成日期”列中只能有一个空值(如果它是 NULL,则应该是当前状态)。有没有办法做到这一点?
为了说明这一点,主键的一部分应该只有一个 NULL。以下是列:
PeriodID | PersonID | StartDate | FinishDate
1 1 1/1/10 10/1/10
2 1 10/1/10 NULL
3 1 somedate MUST NOT BE NULL
Run Code Online (Sandbox Code Playgroud)
是的,“PersonID”是外键。
我正在使用 SQL Server 2008。
编辑 :
我得到了一个有效的答案,但其他方式也很好。