如何在NULL列上创建唯一索引?

我正在使用SQL Server2005。我想将一列中的值限制为唯一,同时允许NULLS。


我当前的解决方案包括在这样的视图上的唯一索引:


CREATE VIEW vw_unq WITH SCHEMABINDING AS

    SELECT Column1

      FROM MyTable

     WHERE Column1 IS NOT NULL


CREATE UNIQUE CLUSTERED INDEX unq_idx ON vw_unq (Column1)

还有更好的主意吗?


慕姐4208626
浏览 539回答 3
3回答

慕妹3242003

计算得出的列技巧被广泛称为“无效破坏者”。我的笔记归功于史蒂夫·卡斯(Steve Kass):CREATE TABLE dupNulls (pk int identity(1,1) primary key,X  int NULL,nullbuster as (case when X is null then pk else 0 end),CONSTRAINT dupNulls_uqX UNIQUE (X,nullbuster))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server