使用SQL Server时必须注意的10个特性:唯一空值

日期: 2013-09-16 作者:Alex Bolenok 来源:TechTarget中国

使用SQL Server时必须注意的10个特性:唯一空值

当在字段上声明了唯一约束,SQL Server就会视所有的空值为唯一的。这意味着在一个唯一字段中你不能有多于一个的空值。

这种行为违反了标准并且是特定于SQL Server的。

为了解决这一问题,通过声明一个唯一索引来实现约束可以排除排除空值如下:

CREATE UNIQUE INDEX

ux_mytable_mycolumn

ON mytable (mycolumn)

WHERE mycolumn IS NOT NULL

需要注意的是这样做将会阻止使用索引来搜索空值。

而要搜索一个空值(甚至是在一个变量中),你必须使用一个特殊谓词,IS NULL,而NULL=NULL是不会判断为TRUE的,所以也就不会满足一个WHERE条件。

这样,你就可以创建一个条件(非唯一)索引如下:

CREATE INDEX

ix_mytable_mycolumn_null

ON mytable (mycolumn)

WHERE mycolumn IS NULL

这可以用于配合IS NULL进行搜索。

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐