Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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 server 无法在具有唯一索引的对象中插入重复的键行。重复的键值。声明已被终止_Sql Server_Outsystems - Fatal编程技术网

Sql server 无法在具有唯一索引的对象中插入重复的键行。重复的键值。声明已被终止

Sql server 无法在具有唯一索引的对象中插入重复的键行。重复的键值。声明已被终止,sql-server,outsystems,Sql Server,Outsystems,我不熟悉外部系统和SQL。我正在尝试创建一个总线应用程序,其中的实体是 当我试图创造一个新的车手,用相同的名字,不同的路线和巴士Id。我得到 无法在对象“dbo.OSUSR_6SL_RIDER”中插入具有唯一索引“OSIDX_OSUSR_6SL_RIDER_4NAME”的重复键行。重复的键值为(ABC)。 该语句已终止。 当我检查数据库表“dbo.OSUSR_6SL_RIDER”中的Name字段时,它没有设置唯一标识符。谁能帮我一下吗 看起来您正在创建一个完全相同的副本,即具有相同Id值的记录

我不熟悉外部系统和SQL。我正在尝试创建一个总线应用程序,其中的实体是

当我试图创造一个新的车手,用相同的名字,不同的路线和巴士Id。我得到
无法在对象“dbo.OSUSR_6SL_RIDER”中插入具有唯一索引“OSIDX_OSUSR_6SL_RIDER_4NAME”的重复键行。重复的键值为(ABC)。
该语句已终止。

当我检查数据库表“dbo.OSUSR_6SL_RIDER”中的Name字段时,它没有设置唯一标识符。谁能帮我一下吗

看起来您正在创建一个完全相同的副本,即具有相同Id值的记录。它引用的索引名似乎是由db系统自动生成的。因此,它不一定是指名称字段。看看你的索引和它们包含的字段。如果OSIDX_OSUSR_6SL_RIDER_4NAME包含Id字段,我不会感到惊讶。

打开表下的
索引树。您将找到一个名为“OSIDX\U OSUSR\U 6SL\U RIDER\U 4NAME”的索引。

编写该索引的脚本,您将看到它是“name”列上的唯一索引,您正试图在其中创建重复值


您必须更改该索引以包含路由和总线ID,或者必须放弃使用重复名称创建新行的尝试。

如果您使用的是OutSystems平台,则从Service Studio发布时将完成/生成所有数据库管理,因此,直接操作数据库是不可取的:您正在为自己设置大量的维护痛苦和不同环境之间的不一致

双击实体
Rider
,它将打开实体的编辑窗口。在索引选项卡中,您可以定义和更改索引(唯一或不唯一),该工具将(重新)生成所有需要的SQL命令

有关更多详细信息,请参阅:


MSFT sql server?您的输出显示
dbo
,您的配置文件中的标记与MSFT相关,但这标记为
mysql
是的,这是sql server,但我正在使用OutSystems。很抱歉,我更改了标记。我建议显示表架构定义的文本输出,以及导致此问题的插入/更新。您将注意到,通过查看预先存在的数据,这对调试来说是多么明显。简而言之,图片没有帮助,你的数据也在妨碍你。看看你的图表,我想你是在限制一个车手一次只能乘坐一辆公交车。对于一个乘坐多辆公交车的乘客,您必须复制所有乘客数据。这不是一个好的设计决策。这是一个多对多的关系-一个车手可以乘坐多辆公交车,一辆公交车可以有很多车手。当我在表单中给出不同的名称并创建时。我在工作,但名字相同,路线不同,这确实显示了错误。谢谢。如何更改在文件名上设置的唯一索引。从技术上讲,您不能更改索引。您必须删除它,然后重新创建它。