加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 在SQL Server中将UNIQUE索引创建为“索引”或“约

发布时间:2020-12-12 16:33:36 所属栏目:MsSql教程 来源:网络整理
导读:在一个将要是UNIQUE(但不是表的主键)的列上创建索引时,SQL Server让我选择一些选项: 1)我可以选择它作为约束或索引. 我猜这就意味着,如果我将它设置为约束,则在查询时不会使用它,只有在写入时.然而,我可以想到的唯一有效的方法是SQL Server强制执行该约束是
在一个将要是UNIQUE(但不是表的主键)的列上创建索引时,SQL Server让我选择一些选项:

1)我可以选择它作为约束或索引.
我猜这就意味着,如果我将它设置为约束,则在查询时不会使用它,只有在写入时.然而,我可以想到的唯一有效的方法是SQL Server强制执行该约束是通过实际构建一个索引.这个选项有什么用?

2)另外,如果我把它设置为“索引”,那么我指定它应该忽略重复的键.
这对我来说最让我困惑的是…
我再次猜测这意味着与约束相反.这可能意味着“在查询时使用它,但在写入时甚至不要检查”.
但是为什么我会把它设置为独特的?
我猜测SQL Server可以做一些优化,但是我想更好地理解它.

有谁知道SQL Server对这些选项的作用?
将索引设置为唯一的用例是什么,但忽略重复的键?

注意:这是针对SQL Server 2000

编辑:根据你所说的,但是…如果我创建一个约束,它将被用来加速使用约束中的字段过滤的查询?

谢谢!

解决方法

UNIQUE约束是ISO / ANSI SQL标准的一部分,而索引不是因为标准是实现不可知的. SQL Server与大多数SQL DBMS通用,将使用索引来实现UNIQUE约束.

可以说,在SQL脚本中使用UNIQUE而不是索引稍微更便于使用,但是如果提供优化机会,则不应排除专有语法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读