问题现象: |
过滤发货单时,系统报错“由于数据移动,未能继续以NOLOCK方式扫描。”,点击“确定”后,进入空白的单据列表。
直接进入发货单,上张,下张,翻阅单据时,也要报错,但能查看所有的单据;修改、删除单据也报同样的错误,无法修改、删除。
|
问题原因: |
由于问题发生在销售管理系统单据列表操作上,所涉及到的主要数据表包括发货退货单主表 DispatchList及发货退货单子表DispatchLists。单据过滤时需要查询发货退货单主(子)表,修改或删除时,也要写入或更新发货退货单主(子)表中对应记录信息。故可重点查询上述两个数据表。
|
解决方案: |
1、经查询,发货退货单主(子)表中数据正常,但表的索引出现了混乱问题。
2、在查询分析器中运行语句select * from dispatchlist where cSCCode=null时,报错:
服务器: 消息 601,级别 12,状态 3,行 1
由于数据移动,未能继续以 NOLOCK 方式扫描。
(与故障现象一样)
3、进一步:执行update dispatchlist set cSCCode=null 时,报错:
服务器: 消息 8908,级别 22,状态 6,行 1
表错误: 数据库 ID 21,对象 ID 1928393939,索引 ID 14。链的链接不匹配。(1:199968)->next = (1:65770),但 (1:65770)->prev = (1:120240)。
连接中断(原因找到了,数据库出错啦!)
4、 将预先做的备份引入另一套帐B(如果没有做备份,我无话可说了),然后清空原帐套A中的发货退货单主表 DispatchList及发货退货单子表DispatchLists (删除所有记录);将帐套B中的两表记录用SQL SERVER企业管理器导入/导出数据的方式引入帐套A。当您再次进入销售管理过滤发货单列表时,您会发现问题已经解决了。
5、要注意的是:导入/导出数据前,要取消被导入表的表间关系FK_DispatchLi_DLID_46FD63FC的强制关系,导入/导出数据后,别忘记恢复关系。
|
相关补丁: |
|
版本: |
8.51A |
模块: |
销售管理 |
产品: |
85x |
问题名称: |
851A发货单列表无法过滤,过滤就报错 |
最后更新: |
2006-06-20 00:00:00 |