我想知道有一个唯一的条件约束的正确方式是什么?因此,如果用户在AccountIdentifier字段中不输入任何内容并提交,它将在数据库中显示为Null,但是由于唯一的约束,它不能有多个空值,有办法这样做吗?
CREATE TABLE [dbo].[AccountTemplate]
(
[AccountID] INT NOT NULL,
[AccountIdentifier] NCHAR(50) NULL,
CONSTRAINT [FK_AccountTemplate_Identifier] UNIQUE NONCLUSTERED ([AccountIdentifier] ASC, [AccountID] ASC)
)
发布于 2016-05-13 11:21:50
创建已筛选的索引。如果从索引中省略空值,则唯一性也不会被强制执行。
发布于 2016-05-13 11:24:09
NULL
不是一个值,而是缺少它。您可以在一个独特的列中拥有任意数量的NULL
。参见,例如,这个sqlfiddle示例和你的桌子。
https://stackoverflow.com/questions/37217747
复制