小编use*_*916的帖子

主键的一部分只有一个 NULL

我有两个日期列:“开始日期”和“完成日期”。

我想确保对于一个主键(在我的情况下是复合键),“完成日期”列中只能有一个空值(如果它是 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。

编辑 :

我得到了一个有效的答案,但其他方式也很好。

null sql-server constraint

3
推荐指数
1
解决办法
4589
查看次数

标签 统计

constraint ×1

null ×1

sql-server ×1