问题现象:如何用语句快速删除用友U8ERP软件中的帐套  ?因升级帐套太多,手工删除太慢

解决方案: 提供语句解决:

DECLARE @AccID char(3)

SET @AccId = '112'--在此修改账套号

USE UFSYSTEM

DELETE FROM UA_BackupLog WHERE cAcc_Id=@AccId

DELETE FROM UA_BackupPlans WHERE cAcc_Id=@AccId

DELETE FROM UA_BackupPlan WHERE cPlan_Id not in (select cPlan_Id FROM UA_BackupPlans)

DELETE FROM UA_HoldAuth WHERE cAcc_Id=@AccId

DELETE FROM UA_Auth WHERE cAcc_Id=@AccId

DELETE FROM UA_FlowItems WHERE cAccId=@AccId

DELETE FROM UA_FlowLines WHERE cAccId=@AccId

DELETE FROM UA_Identity WHERE cAcc_Id=@AccId

DELETE FROM UA_Account_sub WHERE cAcc_Id=@AccId

DELETE FROM UA_Log WHERE cAcc_Id=@AccId

DELETE FROM UA_Period WHERE cAcc_Id=@AccId

DELETE FROM UA_Account WHERE cAcc_Id=@AccId

DELETE FROM UA_Message WHERE Account=@AccId

DELETE GDP_JccpConfigure WHERE UF_DB_NAME=@AccId

USE master

DECLARE AccCur CURSOR

FOR SELECT NAME FROM sysdatabases

DECLARE @AccName varchar(40)

OPEN AccCur

FETCH NEXT FROM AccCur INTO @AccName

WHILE (@@fetch_status <>; -1)

BEGIN

IF (@@fetch_status <>; -2)

BEGIN

IF (left(@AccName,10)='UFDATA_' + @AccId) and len(@AccName)=15

BEGIN

EXECUTE sp_detach_db @AccName

--PRINT '账套库'+@AccName + '已分离!'

END

END

FETCH NEXT FROM AccCur INTO @AccName

END

CLOSE AccCur

DEALLOCATE AccCur

SELECT '账套'+@AccId+'删除完成!'