一、问题提出
通过“系统管理”来删除999账套,首先要求你备份然后才能删除。头痛的是:
1)备份需要发费很长的时间,特别是账套数据文件比较大时。
2)备份时,你的本本基本处于死机状态。
3)还要求,你宝贵的硬盘至少要有双倍空间(如:在E盘存放8G的999账套数据目录文件,此时你要有16G空间)
4)再要求,存放999数据文件的硬盘至少要有一倍空间(如:也就是在E盘至少要有8G空间。)
二、解决方法
通过跟踪总结出,可用SQL快速删除账套。
只需1分钟,也无需硬盘空间。
如下步骤(只适用内部人员的本本上使用):
1、SQL分离UFDADA_999_2007、UFMeta_999_2007数据库
2、分离后删除UFDADA、UFMeta目录文件
3、用SQL清除999账套在UFSystem里的信息
1)消除999账套日志:
DELETE
FROM UA_LOG
where CACC_ID='999'
2)消除999账套年度会计期:
DELETE
FROM UA_Period
WHERE (cAcc_Id = '999')
3)消除999账套启用模块:
DELETE
FROM UA_Account_sub
WHERE (cAcc_Id = '999')
4)消除999账套:
DELETE
FROM UA_Account
WHERE (cAcc_Id = '999')
补充::::::
账套号001, 年度2007
IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name =
N'UFDATA_001_2007')
DROP DATABASE [UFDATA_001_2007]
GO
DELETE FROM [UFSystem]..[UA_Account_sub] Where cAcc_Id='001'
DELETE FROM [UFSystem]..[UA_Period] Where cAcc_Id='001'
DELETE FROM [UFSystem]..[UA_Log] Where cAcc_Id='001'
DELETE FROM [UFSystem]..[UA_Account] Where cAcc_Id='001'
DELETE FROM [UFSystem]..[UA_HoldAuth] Where cAcc_Id='001'
DELETE FROM [UFSystem]..[UA_Identity] Where cAcc_Id='001'
上面这个脚本只能适用于U86X, U87X不知道相关数据表是否还有.
-------------------
在年结09年帐套时,上面的技术对我帮助很大。情况是这样的
问题:公司有二个帐套,帐套号分别是002和004。做完年结后,财务发现002帐套里汇兑损益的凭证做错了,也就是说需要重新年结002帐套,而004帐套则不需再年结。
解决思路:只要把002帐套的2010年度帐删除应该可以解决问题。于是
1、通过系统管理的帐套引出,但是这个引出功能要把002所有的年度帐都删除。此路不通
2、利用帐套和年度帐删除工具,但这个工具也和引出一样,要将002所有年度帐删除。也不行
3、于是在网上搜到这篇文章,利用下面的命令将002的2010年的信息删掉,然后在数据库中把2010年的数据库分离,再在系统管理里进行结转上年数据操作,顺利年结。
use ufsystem
select * from ua_period where cacc_id='002' and iyear='2010'
DELETE
FROM UA_Period
WHERE (cAcc_Id = '002' and iyear=2010 )