问题现象:用友T3行政事业版升级到用友G6标准版报错,提示“增加结算方式在凭证表的外键…”。详细错误提示为:
-2147217873 alter table 语句与 column foreign key 约束 fk gl_accvouch_settlestyle 冲突,该冲突发生于数据库 ufdata_007_2009,表settlestyle,column csstode。执行如下语句时出错: if not exists(select * from sysobjects where name='fk_gl_accvouch_settlestyle' and type='f')
如下图所示:
这个用友通T3的账套账务数据是多年度的,只有2009年度存在问题,其他年度都升级正常,由此我们检查是那些表有异常。
解决方案:
利用事件探查器,跟踪得到报错结果。
根据事件探查器跟踪结果,检查表SettleStyle,查看是否有数据异常。
结果显示此表数据为空,可以排除此表数据的问题。
这时再检查表GL_accvouch,发现其中字段Csettle有些为”NULL”,有些则为“”。
根据此现象,利用语句将所有非NULL数据全部更改为“NULL”。语句:updata GL_accvouch set Csettle = ‘NULL’;
更改后,再次升级,结果发现还是报错,说明不是字段内数据问题。在根据报错提示查看表结构,看是否是表结构异常。
拿此账套表与999演示帐套表结构作对比:
表SettleStyle没有异常,那么再检查表gl_accvouch。结果显示,有很多表结构与演示帐套不一致,说明此表结构异常,不符合系统升级要求。
找到表gl_accvouch异常的字段,将其修正过来,然后我们再升级。
升级成功,问题解决。
本文暂时没有评论,来添加一个吧(●'◡'●)