Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 索引视图的两列上的唯一聚集索引_Sql_Sql Server - Fatal编程技术网

Sql 索引视图的两列上的唯一聚集索引

Sql 索引视图的两列上的唯一聚集索引,sql,sql-server,Sql,Sql Server,我正在尝试在没有唯一id的表上设置索引视图。它有两个唯一标识符,如果组合起来,则对其行来说是唯一的。我在创建索引视图所需的唯一聚集索引时遇到了问题,因为我在MSDN上发现了一个线程,大家都同意可以为索引视图从2列中创建唯一聚集索引@ 但就我的生活而言,我不知道如何创造它。我同意这个问题,但它似乎没有解决它 CREATE UNIQUE CLUSTERED INDEX [PK] ON MyView ( MyId1, MyId2 ) 错误: CREATE UNIQUE INDEX语句终止,因为存在

我正在尝试在没有唯一id的表上设置索引视图。它有两个唯一标识符,如果组合起来,则对其行来说是唯一的。我在创建索引视图所需的唯一聚集索引时遇到了问题,因为我在MSDN上发现了一个线程,大家都同意可以为索引视图从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


那么,我如何在这里创建一个唯一的聚集索引呢?

错误消息似乎表明有多个记录MyId1=
71cd9b68-1a9e-47bc-bc6b-0008b230a6d8
MyId2
0e64aa3a-0631-4caf-82d9-73609ee79b19


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

它不是仅在该列上重复的约束,而是
MyId1
MyId2
的组合,即重复的约束“按MyId1从MyView组中选择MyId1,MyId2,MyId2具有count(*)>1”。这将向您显示您的副本,因为您可能拥有的不仅仅是显示的组合。SQL在遇到跨MyId1、MyId2的唯一性异常时出错。为什么不直接在表上创建索引?你为什么要看风景?啊啊啊啊是的,那些是怎么到那里的?!!谢谢大家,整理一下,瞧,我的索引视图!!