2

我想设置一个允许空值的唯一约束。我想出了过滤约束。伟大的。除了......他们都是后表创建。如:

  • 第一步:定义一个表
  • 第 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
)

还是我可以使用某种花哨的检查约束?

提前致谢。

4

1 回答 1

-1

例如从这里

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)
)
于 2018-04-20T18:01:36.890 回答