我正在尝试在没有唯一ID的表上设置索引视图。它有两个唯一标识符,如果组合它对于它的行是唯一的。我在创建索引视图所需的唯一聚簇索引时遇到麻烦,当我在MSDN上找到一个线程时,大家都同意可以为索引视图@ http://social.msdn.microsoft.com/Forums/en/transactsql/thread/f2c99845-3af1-46e8-9b52-363c24988744创建2列中的唯一聚簇索引
但对于我的生活,无法弄清楚如何创造它。我正在使用这个查询,但它似乎没有削减它。
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。
那么,我怎么能在这里创建一个独特的聚集索引呢?
答案 0 :(得分:2)
错误消息似乎表明有多个记录 MyId1 = 71cd9b68-1a9e-47bc-bc6b-0008b230a6d8
和 MyId2 = 0e64aa3a-0631-4caf-82d9-73609ee79b19
。
我建议运行一个只根据该条件选择的查询,并确认这只返回一条记录。如果它返回更多,那么除非消除重复,否则不能在这两列上重新创建UNIQUE约束。