用SQL快速删除U8账套

分享到:

2014-02-17 08:21:19

用SQL快速删除U8账套


一、问题提出

通过“系统管理”来删除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 )


声明:此篇为用友服务中心文章,转载请标明出处链接:
  • 相关文章
  • 热门下载
  • 数据修复
  • 热门标签
合作伙伴