唯一约束,不包括NULL值 [英] Unique Constraint, excluding NULL values

查看:625
本文介绍了唯一约束,不包括NULL值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


可能重复:

实现唯一约束的正确方法,允许SQL Server中有多个NULL值

我在表中有一个列,其中所有的值必须是唯一的或NULL。

I have a column in my table where all the values must either be unique, or NULL.

我试过为这个列的表添加一个唯一键,但这似乎意味着我只能有1个NULL值?

I tried adding a Unique Key to the table for this column, but this seems to mean I can only have 1 NULL value?

如何设置

推荐答案

SQL Server 2008过滤了允许这样做的索引,但是它的值是唯一的,除非它们是NULL。它们在2005年不可用。在SQL Server 2005中,您可以创建一个定义为

SQL Server 2008 has filtered indexes that allow this but they are not available in 2005. In SQL Server 2005 you can create an indexed view with definition

CREATE VIEW dbo.Foo
WITH SCHEMABINDING
AS
SELECT bar
FROM dbo.baz
WHERE bar IS NOT NULL

然后在其上创建一个唯一的聚集索引。

Then create a unique clustered index on that.

CREATE UNIQUE CLUSTERED INDEX ix ON dbo.Foo(bar)

这篇关于唯一约束,不包括NULL值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆