创建允许SSMS中的NULLS的唯一int列

时间:2017-03-03 10:42:41

标签: sql-server sql-server-2012 ssms

如何在一个现有的表中使一个int列唯一 - 在SSMS中包含数据但允许多个空值的现有表。

现在表中有很多记录 - 现在它们在这一列中都有NULL。

我已经看到了在TSQL中使用唯一过滤索引的方法 - 我可以在UI中看到这样做而不允许NULLS。

使用SSMS GUI是不可能的?

除此之外,使用纯TSQL的最佳方法是什么?一个独特的过滤索引?

2 个答案:

答案 0 :(得分:2)

使用代码:

create unique nonclustered index uixf_mycol
  on dbo.t (col)
    where col is not null;

在SSMS中:

  1. 通过右键单击索引文件夹来创建新的非聚簇索引 对象资源管理器中的扩展表
  2. 添加列
  3. 选中唯一复选框
  4. filter面板中添加where子句。
  5. enter image description here

    enter image description here

答案 1 :(得分:0)

您可以在列上创建UNIQUE约束。

CREATE TABLE Test
(
P_Id int,
CONSTRAINT uc_ID UNIQUE (P_Id)
)