在将要成为 UNIQUE(但不是表的主键)的列上创建索引时,SQL Server 让我选择几个选项:
1)我可以选择它是一个约束或索引。
我猜这意味着如果我将它设置为约束,它不会在查询时使用它,只有在写入时。但是,我能想到的让 SQL Server 强制执行该约束的唯一有效方法是实际构建索引。这个选项有什么用?
2)另外,如果我将它设置为“索引”,它让我指定它应该忽略重复的键。这对我来说是最令人费解的......
我再次猜测它意味着与约束相反。它可能意味着“在查询时使用它,但在写入时甚至不检查”。
但那我为什么要把它设置为 UNIQUE 呢?
我猜 SQL Server 可以做一些优化,但我想更好地理解它。
有谁知道 SQL Server 究竟对这些选项做了什么?
将索引设置为唯一但忽略重复键的用例是什么?
注意:这适用于 SQL Server 2000
编辑:根据你所说的,但是......如果我创建一个约束,它将用于加速使用约束中的字段进行过滤的查询?
谢谢!