解决方案: |
1、首先了解一下ua_identity的结构及保存数据内容:
字段名 字段中文名
cAcc_Id 账套号
cVouchType 单据类型编码
iFatherId 主表标识
iChildId 子表标识
该数据表中按帐套、单据类型保存单据主表、子表的唯一标识信息,其中cVouchtype为对应单据类型的简写。
2、解决脚本(在sql查询分析器中执行即可):
use ufdata_001_2004
go
update ufsystem..ua_identity
set ifatherid=(select convert(int,right(max(id),6)) from rdrecord),
ichildid=(select convert(int,right(max(autoid),6)) from rdrecords)
where cacc_id=‘001‘ and cvouchtype=‘rd‘
go
3、“取消id的主键”这种做法是绝对不允许的!!!id作为收发记录主表rdrecord的主键,作为数据表的唯一标识信息,取消只会造成数据的进一步混乱。针对问题应从问题的根源着手,而不是毫无目的的随意改动,以免造成数据意外错误。
4、如果操作过程中采用覆盖物理数据库的方式,建议进行数据库附加操作,从而保证业务正常使用。
附加脚本供参考,如下,
{
--分离 pubs 数据库,并将 skipchecks 设为 true。
EXEC sp_detach_db ‘ufdata_001_2001‘, ‘true‘
--下面的示例将 pubs 中的两个文件附加到当前服务器。
EXEC sp_attach_db @dbname = N‘ufdata_001_2001‘,
@filename1 = N‘D:zsbWF820aZT0022001UFData.mdf‘,
@filename2 = N‘D:zsbWF820aZT0022001UFData.ldf‘
}
或可参考sql联机帮助。 |