需求:K3物料代碼由於公司的編碼規則變換,需要批量修改編碼內容;
批量修改在數據庫進行批處理的時候,需要注意幾個問題:
1.物料表為關聯表,主要個核心核算表為 T_ITEM,先通過表關聯關系進行關聯更新,更新時需要注意數據類別的區分;
其中 fitemclassid的分類不同,決定的數據不同 4:物料 2001:成本對象 一般存在這兩種,其它的在數據字典中查詢即可;
還要更新物料的父級歸屬內碼,根據case函數進行判定,更新即可;
select * from t_ItemClass --查詢各種代碼的類別
--更新前需要關注提供數據表的准確唯一性
delete from yuanbiao$ where fitemid in (select fitemid from t_item where fnumber in (select fnumber from yuanbiao$))
--更新核算信息表,通過導入將需要更改的表導入數據庫,隨后進行聯合查詢更新;
update a set a.fnumber=b.new,a.FParentID=(case when left(b.new,8)='60.01.01' then 13635 when left(b.new,8)='60.01.02' then 13195 end)
from t_item a
inner join caisheet$ b on a.fnumber=b.old where a.FDeleted=0 and a.fitemclassid=4
2.更新 t_ICItemCore 物料核心信息表的物料代碼,跟 t_item 聯合跟新;
--實例為更新60.01.04的物料代碼 update a set a.fnumber=b.fnumber, a.FParentID=b.FParentID from t_ICItemCore a inner join t_item b on a.fitemid=b.fitemid where b.fitemclassid=4 and b.fnumber like '60.01.04.%'
更新完成即可,更新前需要查詢父級關鍵點的內碼,方便更新,也可用編碼更新;