D365变更公司代码(DataAreaId)

目标需要改下面的数据:从TPSL改为TPXY

D365变更公司代码(DataAreaId)_第1张图片

D365变更公司代码(DataAreaId)_第2张图片

需要改的表数据

CompanyInfo(到数据库后台会发现,数据库中没有CompanyInfo表,因为CompanyInfo继承自DirPartyTable,所以数据只需要到DirPartyTable中变更即可,找到DirPartyTable的行中Name列值为Company accounts data的行把DataArea列改为目的值TPXY,)

和DataArea表的ID和Name改为目的值。

因为还有业务数据的DataAreaId字段,所以也要更新这些字段的值,具体方式如下:

运行如下SQL命令

SELECT 'UPDATE ' + SCHEMA_NAME(t.schema_id) + '.' + t.name + ' SET DATAAREAID = TPXY WHERE DATAAREAID = TPSL;'
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name ='DATAAREAID'
ORDER BY SCHEMA_NAME(t.schema_id), t.name;

得到如下消息:

D365变更公司代码(DataAreaId)_第3张图片

将消息全部拷贝出来,在notepad++上处理成如下格式:

D365变更公司代码(DataAreaId)_第4张图片

主要是给TPXY和TPSL加上‘’,然后再SQL Server上分批执行语句。

之后在AX中把用户的启动公司改为:TPXY。如果启动公司仍然为TPSL系统会自动创建TPSL账套信息。

我觉得SQL语句改动一下也可以直接达到效果,奈何SQL基本功还不够。

 

你可能感兴趣的:(D365,FO)