我正在尝试在没有唯一 ID 的表上设置索引 View 。它有两个唯一的标识符,如果组合起来,它的行将是唯一的。当我在 MSDN 上发现一个线程时,我在实际创建索引 View 所需的唯一聚集索引时遇到了麻烦,人们都同意可以为索引 View @ http://social.msdn.microsoft.com/Forums/en/transactsql/thread/f2c99845-3af1-46e8-9b52-363c24988744 创建 2 列的唯一聚集索引。
但对于我的生活,无法弄清楚如何创建它。我正在处理这个查询,但它似乎并没有解决它。
CREATE UNIQUE CLUSTERED INDEX [PK] ON MyView
(
MyId1, MyId2
)
错误:
The CREATE UNIQUE INDEX statement terminated because a duplicate key was found for the object name 'dbo.MyView' and the index name 'PK'. The duplicate key value is (71cd9b68-1a9e-47bc-bc6b-0008b230a6d8, 0e64aa3a-0631-4caf-82d9-73609ee79b19).
列为重复项的两个 ID 是来自 MyId2 的 ID。
那么,我如何在这里创建唯一的聚集索引?
最佳答案
嗯,错误消息似乎表明有多个记录,其中 MyId1 = 71cd9b68-1a9e-47bc-bc6b-0008b230a6d8
和 MyId2 = 0e64aa3a-0631-4caf-82d9-73609ee79b19
.
我建议运行一个仅根据该条件进行选择的查询,并确认这只返回一条记录。如果它返回更多,则无法在这两列上重新创建 UNIQUE 约束,除非消除重复项。
关于sql - 索引 View 的两列上的唯一聚集索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10888214/