我想设置一个允许空值的唯一约束。我想出了过滤约束。伟大的。除了......他们都是后表创建。如:
- 第一步:定义一个表
- 第 2 步:添加约束
像这样:
CREATE TABLE MyTable
(
[Id] INT NOT NULL,
[ColumnA] INT NULL,
[ColumnB] INT NULL,
CONSTRAINT [PK_MyTable] PRIMARY KEY ([ID] ASC)
)
CREATE UNIQUE INDEX [MyNullableIndex] ON MyTable (ColumnA, ColumnB) WHERE ColumnA IS NOT NULL AND ColumnB IS NOT NULL
我想一口气做到这一点。如:在表定义中包含约束。这可能吗?
像这样的东西:
CREATE TABLE MyTable
(
[Id] INT NOT NULL,
[ColumnA] INT NULL,
[ColumnB] INT NULL,
CONSTRAINT [PK_MyTable] PRIMARY KEY ([ID] ASC),
CONSTRAINT [Unique_ColumnA_ColumnB] UNIQUE (ColumnA, ColumnB) WHERE ColumnA IS NOT NULL AND ColumnB IS NOT NULL
)
还是我可以使用某种花哨的检查约束?
提前致谢。