問題現(xiàn)象:用友T3行政事業(yè)版升級到用友G6標(biāo)準(zhǔn)版報(bào)錯(cuò),提示“增加結(jié)算方式在憑證表的外鍵…”。詳細(xì)錯(cuò)誤提示為:
-2147217873 alter table 語句與 column foreign key 約束 fk gl_accvouch_settlestyle 沖突,該沖突發(fā)生于數(shù)據(jù)庫 ufdata_007_2009,表settlestyle,column csstode。執(zhí)行如下語句時(shí)出錯(cuò): if not exists(select * from sysobjects where name='fk_gl_accvouch_settlestyle' and type='f')
如下圖所示:
這個(gè)用友通T3的賬套賬務(wù)數(shù)據(jù)是多年度的,只有2009年度存在問題,其他年度都升級正常,由此我們檢查是那些表有異常。
解決方案:
利用事件探查器,跟蹤得到報(bào)錯(cuò)結(jié)果。
根據(jù)事件探查器跟蹤結(jié)果,檢查表SettleStyle,查看是否有數(shù)據(jù)異常。
結(jié)果顯示此表數(shù)據(jù)為空,可以排除此表數(shù)據(jù)的問題。
這時(shí)再檢查表GL_accvouch,發(fā)現(xiàn)其中字段Csettle有些為”NULL”,有些則為“”。
根據(jù)此現(xiàn)象,利用語句將所有非NULL數(shù)據(jù)全部更改為“NULL”。語句:updata GL_accvouch set Csettle = ‘NULL’;
更改后,再次升級,結(jié)果發(fā)現(xiàn)還是報(bào)錯(cuò),說明不是字段內(nèi)數(shù)據(jù)問題。在根據(jù)報(bào)錯(cuò)提示查看表結(jié)構(gòu),看是否是表結(jié)構(gòu)異常。
拿此賬套表與999演示帳套表結(jié)構(gòu)作對比:
表SettleStyle沒有異常,那么再檢查表gl_accvouch。結(jié)果顯示,有很多表結(jié)構(gòu)與演示帳套不一致,說明此表結(jié)構(gòu)異常,不符合系統(tǒng)升級要求。
找到表gl_accvouch異常的字段,將其修正過來,然后我們再升級。
升級成功,問題解決。