具有重复值的列上的聚集索引

sat*_*jit 0 sql sql-server-2008

我有一个没有索引的表。我需要在一列上添加聚集索引,但该表没有任何具有唯一数据的列。这是否允许我在重复列上添加聚集索引?

yog*_*ogi 5

除非指定关键字 UNIQUE,否则聚集索引不会强制唯一性。

CREATE CLUSTERED INDEX bob ON foo( bar )
Run Code Online (Sandbox Code Playgroud)

不等于

CREATE UNIQUE CLUSTERED INDEX bob on foo( bar )
Run Code Online (Sandbox Code Playgroud)

您可能正在考虑 CREATE TABLE 语句中的 PRIMARY KEY 约束。在这个例子中:

CREATE TABLE foo ( bar PRIMARY KEY )
Run Code Online (Sandbox Code Playgroud)

ASE 将在 bar 上创建一个 UNIQUE、CLUSTERED 索引。