AX 插入一条记录提示表记录已经存在,但是该记录实际上是不存在的。

时间:2023-03-22 12:04:20

做测试的时候遇到一个情况“AX 插入一条记录提示表记录已经存在,但是该记录实际上是不存在的。”

检查到该表(TABLE_ABC)所有的key都是AllowDuplicate的,

继续检查表属性发现 createdRecIdxIdx设置为Yes, 启用了RecId作为唯一键。

因此推测 应该是该表的recid 的nextvalue 数据不对了。

想办法刷新 recid .

在sql 后台

1. 计算 Table_ABC目前最大的RecId

  declare @maxRecId int64

  select @maxRecId = max(RECID) from SML_GITListReceived with(nolock)

2. 系统记录recId 的表SYSTEMSEQUENCES 

update SYSTEMSEQUENCES
set NEXTVAL = @maxRecId+10000
where tabID = 35223 //Table_ABC 的tableId

3, 此时必须重启AX的所有AOS,重新登录后问题解决