Microsoft dynamics 更改表时升级代码单元出错';s峰长度
我有表A-Z。表A有ID的PK,所有其他表都有与表A的ID相关的字段 我的任务是进行代码清理,我需要将TableA的ID从长度30更改为20。我已经完成了其他表B-Z,以及升级代码单元。但是,当我尝试更改TableA时,会出现以下错误: “与以下主键相关的更改可能会导致新表中的数据丢失。无法处理更改,因为已更改表的TableSyncSetup type函数的TableUpgradeMode设置为Copy,这不会将数据复制到新表。要解决此问题,必须将TableUpgradeMode选项更改为Move,然后将C/AL代码添加到升级类型函数以处理新的表数据。” 错误是什么意思?我需要将TableA的升级代码单元从TableSyncSetup.Mode::Copy更改为::Move吗?有什么指导吗Microsoft dynamics 更改表时升级代码单元出错';s峰长度,microsoft-dynamics,navision,dynamics-nav,dynamics-nav-2016,Microsoft Dynamics,Navision,Dynamics Nav,Dynamics Nav 2016,我有表A-Z。表A有ID的PK,所有其他表都有与表A的ID相关的字段 我的任务是进行代码清理,我需要将TableA的ID从长度30更改为20。我已经完成了其他表B-Z,以及升级代码单元。但是,当我尝试更改TableA时,会出现以下错误: “与以下主键相关的更改可能会导致新表中的数据丢失。无法处理更改,因为已更改表的TableSyncSetup type函数的TableUpgradeMode设置为Copy,这不会将数据复制到新表。要解决此问题,必须将TableUpgradeMode选项更改为Mov
我使用的是Dynamics NAV 2016。是的,您必须更改移动模式,但您还必须创建一个新表,临时保存已减少字段长度的字段中的数据。由于字段长度减少,您还必须处理可能的数据截断问题 但我会用另一种方法(升级工具包中的旧方法)来实现这一点: -创建具有相同字段长度(30)的新表,复制字段内容并清除字段(使用codeunit) -更改字段长度,但在NAV询问同步模式时选择Force(因为您知道这些字段中没有数据-SQL可以删除并重新创建列) -使用第二个代码单元将数据复制回缩减字段-处理截断
我希望它能有所帮助如果它这么说的话,可能是表a中有一条ID长度大于20的记录?