sql-server – 在SQL Server中将UNIQUE索引创建为“索引”或“约束”之间有什么区别?

前端之家收集整理的这篇文章主要介绍了sql-server – 在SQL Server中将UNIQUE索引创建为“索引”或“约束”之间有什么区别?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在一个将要是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而不是索引稍微更便于使用,但是如果提供优化机会,则不应排除专有语法.

猜你在找的MsSQL相关文章