用友财务软件互动问答平台

 找回密码
 立即注册
查看: 593|回复: 1

用友U8软件中数据库手工修复案例分析?

[复制链接]
发表于 2016-9-25 15:39:08 | 显示全部楼层 |阅读模式
问题现象:在用友U8erp系统中用友U8版本号:U8软件的其他产品线MSSQL2000模块出现如下问题:问题描述:1、不能以2004年1月1日去整理现存量2、不能对2004年7月1日的采购入库单进行列表3、收发存汇总表不能查询4、不能连续修改采购入库单据,修改第一张可以,继续修改第二张提示网络连接失败,然后退出。问题产生原因:估计是近段时间不间断停电导致数据库损坏。 建议:将处理过程或SQL语句形成文挡,便于以后有类似问题可以自己解决。请帮忙解答!
原因分析:由于非法操作(断电等)导致数据表结构损坏,部分数据表的主外键、索引异常错误,导致产品部分功能出错。
解决方案:在用友erp 系统版本U8软件中(调整过程中涉及到数据记录删除操作时请先与用户协商处理)问题答复:修复工作如下:1、首先使用数据库修复脚本对数据库反复修复检查(修复了4遍),直至再修复时错误提示不变,即只剩下无法修复的错误为止,对该数据最后剩下13个一致性错误无法修复,提示信息“CHECKDB发现了0个分配错误和13个一致性错误(在数据库‘UFDATA_002_2004‘中)”。使用脚本:数据检查.sql2、根据提示信息中的具体错误信息,如“服务器:消息2601,级别14,状态3,行1。不能在具有唯一索引‘RRKey‘的对象‘RdRecord‘中插入重复键的行。数据行(1:65607:15)(由RID=(1:65607:15)标识)的索引值为cWhCode=‘422‘andbRdFlag=1andcCode=‘0000005913‘。”,从查询分析器中查看现象:select*fromrdrecordwhereccode=‘0000005913‘(有记录)select*fromrdrecordwhereid=‘308090‘(无记录)下面尝试修正错误。3、修复数据表Rdrecord(子表rdrecords无错误):a、重命名rdrecord为rdrecord2;b、将原收发记录主表rdrecord2中记录复制到新表rdrecord中select*intordrecordfromrdrecord2,删除Rdrecord2;c、尝试创建表间关系及rdrecord的索引、主键等时,创建索引RRKey失败,查询cwhcode+ccode+brdflag上存在的重复值(非法记录),根据提示‘发生在重要主键401上’,查询仓库401,selectcount(ccode),ccodefromrdrecordwherecwhcode=‘401‘groupbyccode,brdflaghavingcount(ccode)>1,查询结果显示ccode=0000000264,0000000265的记录重复。select*fromrdrecordwherecwhcode=‘401‘andccodein(‘0000000264‘,‘0000000265‘)andbrdflag=0,对每个单据号存在2条记录,删除7月1号的单据(实际中应征询用户意见进行妥当处理)deletefromrdrecordswhereidin(‘308307‘,‘308309‘)deletefromrdrecordwhereidin(‘308307‘,‘308309‘)再次创建索引RRkey时发现在仓库408、410、422、423等等上均存在非法重复值,观察数据记录,发现错误记录均在2004-07-01号。通过以下sql语句查询所有非法记录:selectid,ccode,cwhcode,brdflagfromrdrecordwhereccodein(selectccodefromrdrecordgroupbyccode,brdflag,cwhcodehavingcount(ccode)>1)andddate=‘2004-07-01‘orderbyccode,cwhcode,通过以下sql语句删除7月1号的非法记录信息:deletefromrdrecordswhereidin(selectidfromrdrecordwhereccodein(selectccodefromrdrecordgroupbyccode,brdflag,cwhcodehavingcount(ccode)>1)andddate=‘2004-07-01‘)deletefromrdrecordwhereccodein(selectccodefromrdrecordgroupbyccode,brdflag,cwhcodehavingcount(ccode)>1)andddate=‘2004-07-01‘4、根据提示信息中的具体错误信息,如“违反了PRIMARYKEY约束‘aaaaaTransVouch_PK‘。不能在对象‘TransVouch‘中插入重复键。服务器:消息8951,级别16,状态1,行1表错误:表‘TransVouch‘(ID785437用友U872erp软件)。索引‘aaaaaTransVouch_PK‘(ID2)中下列行的键缺少或无效:”,数据表TransVouch损坏,尝试修复该数据表。5、同上步骤3,修复数据表TransVouch:a、重命名TransVouch为TransVouch2;b、将原收发记录主表rdrecord2中记录复制到新表rdrecord中select*intotransVouchfromTransvouch2,,删除transVouch2;c、试图创建关系索引时提示“服务器:消息1505,级别16,状态1,行1CREATEUNIQUEINDEX终止,因为发现了索引ID2的重复键。最重要的主键为‘0000000949‘。”,查询select*fromtransvouchwherectvcode=‘0000000949‘,发现有重复记录,故索引创建失败。删除7月1号的重复记录:(查询)select*fromtransvouchwherectvcode=‘0000000949‘select*fromtransvouchswherectvcode=‘0000000949‘由于子表transvouch与主表transvouch通过ctvcode关联,现主表和子表中各存在2条记录,因无法定位子表中哪条记录属于7月1号单据的表体,暂只删除主表中重复记录(由日期关系判断子表transvouchs中autoid较小的记录应为7月1号的表体内容,建议征询用户意见后再决定删除哪条记录,也可后期在界面上删除表体行记录):(删除)deletefromtransvouchwherectvcode=‘0000000949‘anddtvdate=‘2004-07-01‘6、执行创建关系、索引、主外键脚本,脚步执行成功。rdrecordCreate.sql;TransVouchCreate.sql;(此两个脚本可通过企业管理器来创建)7、再次用数据库修复检查脚本进行复查,检查结果显示数据库结构/数据正确无误。CHECKDB发现了0个分配错误和0个一致性错误(在数据库‘UFDATA_002_2004‘中)。数据检查.sql8、查看采购入库单列表时显示记录异常(只有表头信息),故怀疑rdrecord中存在部分非法记录,其在子表rdrecords中无对应记录。(查询:)selectidfromrdrecordwhereidnotin(selectdistinctidfromrdrecords)(删除:)deletefromrdrecordwhereidnotin(selectdistinctidfromrdrecords)数据修复工作完成!进入产品查看问题:1、修复数据库后整理现存量成功;2、采购入库单列表查询正常;3、收发存汇总表可查询;4、可连续修改采购入库单。注意:1、建议用户定期备份数据;2、不可非法关机、随意插拔USB设备等。
回复

使用道具 举报

发表于 2016-9-25 16:19:39 | 显示全部楼层
用友U8ERP软件免费下载地址截止2016年已发布的版本全部在下方,安装教程请认真参考:http://www.yyrjxz.com/xue/u8azjc.html 进行安装。
1、用友MERPu811软件免费下载地址:http://www.yyrjxz.com/yongyou/MERPU811.1.html
2、用友U82.0erp软件免费下载地址:http://www.yyrjxz.com/yongyouu8/u8old820.html
3、用友U83.0erp软件免费下载地址:http://www.yyrjxz.com/yongyouu8/u8old830.html
4、用友U852erp软件免费下载地址:http://www.yyrjxz.com/yongyouu8/U852.html
5、用友U860erp软件免费下载地址:http://www.yyrjxz.com/yongyouu8/u860.html
6、用友U861erp软件免费下载地址:http://www.yyrjxz.com/yongyouu8/u861xz.html
7、用友U870erp软件免费下载地址:http://www.yyrjxz.com/yongyouu8/u870.html
8、用友U872erp软件免费下载地址:http://www.yyrjxz.com/yongyouu8/u871.html
9、用友U82.0erp软件免费下载地址:http://www.yyrjxz.com/yongyouu8/U872.html
10、用友U890erp软件免费下载地址:http://www.yyrjxz.com/yongyouu8/u890.html
11、用友U810.0erp软件免费下载地址:http://www.yyrjxz.com/yongyouu8/U810.0.html
12、用友U810.1erp软件免费下载地址:http://www.yyrjxz.com/yongyouu8/U8V10.1.html
13、用友U811.0erp软件免费下载地址:http://www.yyrjxz.com/yongyouu8/U8V11.0.html
14、用友U8+v11.1erp软件免费下载地址:http://www.yyrjxz.com/yongyouu8/U8V11.1.html
15、用友U8+v12.0erp软件免费下载地址:http://www.yyrjxz.com/yongyouu8/u8120.html
16、用友U8+v12.1erp软件免费下载地址:http://www.yyrjxz.com/yongyouu8/u8121.html
17、用友U8+v12.5erp软件免费下载地址:http://www.yyrjxz.com/yongyouu8/u8125.html
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|用友十万个为什么 ( 赣ICP备13006939号 )

GMT+8, 2025-8-23 03:53 , Processed in 0.179458 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表