删除数据库中多余的扩展字段原创
金蝶云社区-闲人
闲人
3人赞赏了该文章 680次浏览 未经作者许可,禁止转载编辑于2022年09月23日 11:05:49

问题:


PLM中客户在PDM基础对象扩展单据中增加扩展字段,,但是数据库表是有一个1024个字段的限制,在BOS中增加超出后就会有一个表结构保存出错XXX超出了1024列的最大值的错误提示。

解决方案:


需要将多余的扩展字段在数据库中删除掉


第一步、业务类型配置中删除对应的扩展字段。


第二步、BOSIDE中在PDM基础对象扩展单据中删除对应的字段。


第三步、执行删除字段的脚本

-- T_PLM_PDM_BASE_0  是PDM基础对象扩展单据的表名(如果字段没有指定拆分表,一般都在这个表),

--  FFIELDNAME是字段名(可以在BOS中看,见下图)

image.png

数据库中执行 alter table T_PLM_PDM_BASE_0 drop column  FFIELDNAME

一般会遇到一个报错,报错信息如下


消息 5074,级别 16,状态 1,第 3 行 对象'DF__T_PLM_PDM__F_BRI__34CA6C50' 依赖于 列'F_BRI_ECR_ECN_SXSJ'。 消息 4922,级别 16,状态 9,第 3 行 由于一个或多个对象访问此 列,ALTER TABLE DROP COLUMN F_BRI_ECR_ECN_SXSJ 失败。

这个报错是说这个字段有一个约束 DF__T_PLM_PDM__F_BRI__34CA6C50 ,删除字段前需要将这个约束删除


数据库中执行  alter table T_PLM_PDM_BASE_0 drop constraint  DF__T_PLM_PDM__F_BRI__34CA6C50


然后再次执行删除字段的脚本 alter table T_PLM_PDM_BASE_0 drop column  FFIELDNAME

注意:PLM的扩展字段还有一个版本表也需要删除

重复执行上面的脚本,只是将表名改为 T_PLM_PDM_BASEVersion_0

可能遇到的问题:
如果字段是多语言文本,对应的表名是 T_PLM_PDM_BASE_L

删除数据库中多余的扩展字段就删除完成了

赞 3