在SQL數據庫中怎樣快速刪除用友U8賬套
在SQL數據庫中怎樣快速刪除U8賬套
用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
FROMUA_LOG
whereCACC_ID='999'
2)消除999賬套年度會計期:
DELETE
FROMUA_Period
WHERE(cAcc_Id='999')
3)消除999賬套啓用模塊:
DELETE
FROMUA_Account_sub
WHERE(cAcc_Id='999')
4)消除999賬套:
DELETE
FROMUA_Account
WHERE(cAcc_Id='999')
補充::::::
賬套號001,年度2007
IFEXISTS(SELECTnameFROMmaster.dbo.sysdatabasesWHEREname=
N'UFDATA_001_2007')
DROPDATABASE[UFDATA_001_2007]
GO
DELETEFROM[UFSystem]..[UA_Account_sub]WherecAcc_Id='001'
DELETEFROM[UFSystem]..[UA_Period]WherecAcc_Id='001'
DELETEFROM[UFSystem]..[UA_Log]WherecAcc_Id='001'
DELETEFROM[UFSystem]..[UA_Account]WherecAcc_Id='001'
DELETEFROM[UFSystem]..[UA_HoldAuth]WherecAcc_Id='001'
DELETEFROM[UFSystem]..[UA_Identity]WherecAcc_Id='001'
上面這個腳本只能適用於U86X,U87X不知道相關數據表是否還有.
-------------------
在年結09年帳套時,上面的技術對我幫助很大。情況是這樣的
問題:公司有二個帳套,帳套號分別是002和004。做完年結後,財務發現002帳套裏匯兌損益的憑證做錯了,也就是說需要重新年結002帳套,而004帳套則不需再年結。
解決思路:只要把002帳套的2010年度帳刪除應該可以解決問題。於是
1、通過系統管理的帳套引出,但是這個引出功能要把002所有的年度帳都刪除。此路不通
2、利用帳套和年度帳刪除工具,但這個工具也和引出一樣,要將002所有年度帳刪除。也不行
3、於是在網上搜到這篇文章,利用下面的命令將002的2010年的信息刪掉,然後在數據庫中把2010年的數據庫分離,再在系統管理裏進行結轉上年數據操作,順利年結。
useufsystem
select*fromua_periodwherecacc_id='002'andiyear='2010'
DELETE
FROMUA_Period
WHERE(cAcc_Id='002'andiyear=2010)
每套賬所對應的數據庫名字
原因分析:若是商貿通標準版本,可以根據維護中心--查詢執行器去看每個帳套的數據庫的問題解答:由於用戶用的是商貿通普及版本,可以在查詢執行器中找到master數據庫,在sub_list這張表中有dbname字段對應的就是數據庫的名字
數據庫文件所在的路徑:查詢Master數據庫中的sysdatabases 這個表。
UFSystem數據庫中的UA_Account表中存儲着帳套號和帳套名稱
更改U8備份緩存盤的路徑:
重設備份計劃,更改備份路徑。無法打開份設備,那你打開查詢分析器,在ufsystem數據庫中找到用戶表ua_account打開,把cacc_path字段的值修改正確。其值爲賬套的日期。