同步 DataDictionary 时出现此错误。



我复制了整个业务和代码数据库并创建了新的 AX 环境。我不确定源 Env 上是否也存在此错误,但我想在新的 Env 上解决此问题。

我已经尝试过的:

  • 从 SQL Server Management Studio 中删除表,然后
    从 AOT 同步但错误仍然存​​在。
  • 试图从 SSMS 中删除索引名称:
    DROP INDEX I_100013RECID ON [ACOCOSTCENTERATTRIBUTEVALUE_BR]
    

    但是得到这个错误:



  • 但是在查询索引时,它显示了正确的表:
    select object_name(object_id) from sys.indexes WHERE name =  'I_100013RECID'
    

    输出:
       dbo.ACOCOSTCENTERATTRIBUTEVALUE_BR
    
  • 在检查 sys.indexes 时,有一个名为
  • 的索引

    sql-server - 数据库中已经有一个名为 I_XXXRECID 的对象-LMLPHP
  • 但是索引在表中不可见:

  • sql-server - 数据库中已经有一个名为 I_XXXRECID 的对象-LMLPHP

    编辑 1:附加信息

    表 ID 没有冲突:

    sql-server - 数据库中已经有一个名为 I_XXXRECID 的对象-LMLPHP

    来自 SSMS 的表格:

    sql-server - 数据库中已经有一个名为 I_XXXRECID 的对象-LMLPHP

    从 SSMS 中删除表:

    sql-server - 数据库中已经有一个名为 I_XXXRECID 的对象-LMLPHP

    在 3 个索引中,为什么当我从 SSMS 中删除表时没有删除 2 个索引?为什么只有 1 被删除?同步后检查下面的 3 个索引。如何摆脱这些? SSMS 不会让我删除它,告诉“无法修改目录”。我可以尝试通过更改主数据的设置来删除它吗?我不确定与此表相关的所有表都填充在目录中。

    从 AOT 再次同步:

    sql-server - 数据库中已经有一个名为 I_XXXRECID 的对象-LMLPHP

    最佳答案

    您的环境中是否使用了表 ACOCostCenterAttributeValue_BR?我认为不会,除非您与巴西公司合作。

    我建议你

  • 临时将表上的 ConfigurationKey 从 LedgerBasic 更改为 SysDeletedObjects63。
  • 右键单击​​表,单击同步。它将从 SQL DB 中删除该表。
  • 再次尝试运行完整数据库同步,确保没有错误。
  • 从您正在工作的层中删除 ACOCostCenterAttributeValue_BR 表。它将使用 ConfigurationKey = LedgerBasic 恢复表的 SYS 层版本。
  • 右键单击​​表,单击同步。它将在 SQL DB 中创建表。如果您在那时开始收到数据库同步错误,则意味着您的数据库中有其他问题,例如另一个表有一个具有相同名称(I_100013RECID)或类似名称的索引。
  • 关于sql-server - 数据库中已经有一个名为 I_XXXRECID 的对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55890744/

    10-13 08:07
    查看更多