在同步数据字典时出现了这个错误。
SQL错误描述:[Microsoft][SQL Server Native Client 11.0][SQL Server] 数据库中已有一个名为 'I_100013RECID' 的对象。
SQL语句:ALTER TABLE "DBO".ACOCOSTCENTERATTRIBUTEVALUE_BR ADD CONSTRAINT I_100013RECID PRIMARY KEY NONCLUSTERED (RECID)
我复制了整个业务和代码数据库,并创建了一个新的AX环境。我不确定源环境中是否存在此错误,但我希望在新环境中解决这个问题。
我已经尝试过的方法:
Deleted the table from SQL Server Management Studio and then Synchronize from AOT but the error persists.
Tried to drop the index name from SSMS:
DROP INDEX I_100013RECID ON [ACOCOSTCENTERATTRIBUTEVALUE_BR]
But getting this error:
无法删除索引“ACOCOSTCENTERATTRIBUTEVALUE_BR.I_100013RECID”,因为它不存在或您没有权限。
但是在查询索引时,它显示的是正确的表:
select object_name(object_id) from sys.indexes WHERE name = 'I_100013RECID'
输出:
dbo.ACOCOSTCENTERATTRIBUTEVALUE_BR
- 查询sys.indexes后发现有一个名称为该名称的索引:
- 但该索引在表中不可见:
编辑 1:额外信息
表ID无冲突:
来自 SSMS 的表:
从 SSMS 中删除表:
在我从 SSMS 中删除表时,为什么 2 个索引没有被删除,只有 1 个被删除?请查看下面的 3 个索引的同步后情况。如何摆脱这些索引? SSMS 告诉我“目录无法修改”,我能否尝试通过更改主数据上的设置来删除它?我不确定与此表相关的所有表在目录中都是否被填充。
SELECT OBJECT_NAME(object_id) AS TableName, * FROM sys.indexes AS I ORDER BY TableName, i.name;
。 - Dan Guzman