当前位置:  开发笔记 > 编程语言 > 正文

Sql Server Unique Key也是索引吗?

如何解决《SqlServerUniqueKey也是索引吗?》经验,为你挑选了2个好方法。

我在表中有一个列(例如UserName),我想确保它是唯一的.所以我为该列创建了一个唯一键,并将其命名为IX_Users_UserName.

现在,如果我根据用户名搜索大量用户,我想确保该字段有索引.

我是否需要创建单独的索引,或者是唯一的键还被视为索引,就像主键是群集唯一键一样?



1> tvanfosson..:

唯一键:唯一键强制定义它们的列的唯一性.Unique Key在列上创建非聚集索引.唯一键只允许一个NULL值.

更改表以向列添加唯一约束:

ALTER TABLE作者ADD CONSTRAINT IX_Authors_Name UNIQUE(Name)GO

资源

来自MSDN的更多信息.

FWIW - 如果你的约束没有创建索引,我会避免命名它IX_,因为通常假设它与一个(IX =索引)相关联.



2> marc_s..:

基本上,在SQL Server中,确实通过唯一索引实现了唯一约束.

UNIQUE约束和UNIQUE INDEX之间的区别非常微妙.如果创建UNIQUE INDEX,则可以在另一个表的外键约束中引用它(如果创建UNIQUE约束,则不起作用....).

那有什么区别?好吧 - 一个独特的约束实际上更像是一个逻辑上的东西 - 你想表达给定列(或列组)的内容是唯一的意图.

唯一索引(与大多数索引一样)更多的是"幕后"实现细节.

从我的角度来看,除非你真的遇到问题,否则我总是使用一个独特的索引 - 作为参照完整性约束的一部分的好处是非常有效的,并且在某些情况下非常有用.从功能上来说,实际上,使用Unique Constraint和Unique Index之间没有区别.

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有