2

我正在尝试在没有唯一 ID 的表上设置索引视图。它有两个唯一的标识符,如果组合起来对于它的行来说是唯一的。我在创建索引视图所需的唯一聚集索引时遇到了麻烦,当我在 MSDN 上找到一个大家都同意的线程时,可以从 2 列中为索引视图创建唯一聚集索引 @ http://social .msdn.microsoft.com/Forums/en/transactsql/thread/f2c99845-3af1-46e8-9b52-363c24988744

但是对于我的生活,无法弄清楚如何创建它。我正在处理这个查询,但它似乎并没有削减它。

CREATE UNIQUE CLUSTERED INDEX  [PK] ON MyView
(
MyId1, MyId2
)

错误:

CREATE UNIQUE INDEX 语句终止,因为为对象名称“dbo.MyView”和索引名称“PK”找到重复键。重复键值为 (71cd9b68-1a9e-47bc-bc6b-0008b230a6d8, 0e64aa3a-0631-4caf-82d9-73609ee79b19)。

列为重复的两个 ID 是来自 MyId2 的 ID。

那么,我怎样才能在这里创建一个唯一的聚集索引呢?

4

1 回答 1

2

好吧,错误消息似乎表明MyId1 =71cd9b68-1a9e-47bc-bc6b-0008b230a6d8MyId2 =有不止一个记录0e64aa3a-0631-4caf-82d9-73609ee79b19

我建议运行一个仅根据该条件进行选择的查询,并确认它只返回一条记录。如果它返回更多,那么除非您消除重复项,否则您无法在这两列上重新创建 UNIQUE 约束。

于 2012-06-04T21:04:01.797 回答