问题现象:近期有一个用友通T3财务软件的客户在进行年度数据结转时卡在了建立新的会计年度这边,主要错误现象为:用友T3创建年度帐时提示:对象名 TAX_SB_NSSB_BJ_ZB 无效?如下图所示:
确定后可能还会有如下提示:未准备命令,而且一直退不出去,关不掉系统管理。
用友小辣妹首先想到的办法就是把这个账套降级后再升级试一下看,因为不少的建立年度账的问题试用这个方法都可以解决,于是开始进数据库中操作:
use ufdata_010_2016 update accinformation set cvalue='8.213' where cid ='99' and csysid = 'AA'
可惜,降级后进系统管理升级SQLSERVER数据库时提示了更多的错误,发现不行。
后来想到之前发布过一款专门用于用友T3升级问题之降级处理的工具,下载地址为:https://www.yongyou8.com/ask/thread-204736-1-1.html,于是使用工具进行尝试,看是否可以成功。
1、打开工具后,可直接进行修复,如果是提示下面的报错,要考虑电脑上是否安装好了用友通T3软件,另外解压后存在在C盘根目录下进行尝试。
2、连接数据库时,注意自己的SA口令别输入错误,如果不记得SA密码的话,可以参考教程进行修改:https://www.yongyou8.com/xue/sa.html。
3、用友小辣妹比较喜欢研究工具,后来发现工具中的脚本并不仅仅是降级这么简单,大家可以一起看一下。
update accinformation set cvalue='8.216',cdefault='8.216' where cname='versionflag' if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Rpt_FldDEF]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) select * into tempdb..yld1 from rpt_flddef GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Rpt_FldDEF]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[Rpt_FldDEF] GO CREATE TABLE [dbo].[Rpt_FldDEF] ( [ID_Field] [int] IDENTITY (1, 1) NOT NULL , [ID] [int] NULL , [Name] [varchar] (32) COLLATE Chinese_PRC_CI_AS NULL , [Expression] [varchar] (255) COLLATE Chinese_PRC_CI_AS NULL , [Condition] [varchar] (255) COLLATE Chinese_PRC_CI_AS NULL , [ModeEx] [int] NULL , [OrderEx] [int] NULL , [TopEx] [int] NULL , [LeftEx] [int] NULL , [Width] [int] NULL , [Height] [int] NULL , [Visible] [int] NULL , [Note] [varchar] (32) COLLATE Chinese_PRC_CI_AS NULL , [nameForeign] [varchar] (32) COLLATE Chinese_PRC_CI_AS NULL , [iColSize] [int] NULL , [FormatEx] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL , [iAlignStyle] [int] NULL , [iSize] [int] NULL ) ON [PRIMARY] GO ALTER TABLE [dbo].[Rpt_FldDEF] WITH NOCHECK ADD CONSTRAINT [Rpt_FldDEF_PK] PRIMARY KEY CLUSTERED ( [ID_Field] ) ON [PRIMARY] GO ALTER TABLE [dbo].[Rpt_FldDEF] ADD CONSTRAINT [DF__Rpt_FldDe__iColS__76B76416] DEFAULT (0) FOR [iColSize], CONSTRAINT [DF__Rpt_FldDe__iAlig__77AB884F] DEFAULT (0) FOR [iAlignStyle], CONSTRAINT [DF__Rpt_FldDe__iSize__789FAC88] DEFAULT (0) FOR [iSize] GO CREATE INDEX [ID] ON [dbo].[Rpt_FldDEF]([ID]) ON [PRIMARY] GO CREATE UNIQUE INDEX [ID_Field] ON [dbo].[Rpt_FldDEF]([ID_Field]) ON [PRIMARY] GO setuser GO EXEC sp_bindefault N'[dbo].[Rpt_FldDEF_Height_D]', N'[Rpt_FldDEF].[Height]' GO EXEC sp_bindefault N'[dbo].[Rpt_FldDEF_ID_D]', N'[Rpt_FldDEF].[ID]' GO EXEC sp_bindefault N'[dbo].[Rpt_FldDEF_LeftEx_D]', N'[Rpt_FldDEF].[LeftEx]' GO EXEC sp_bindefault N'[dbo].[Rpt_FldDEF_ModeEx_D]', N'[Rpt_FldDEF].[ModeEx]' GO EXEC sp_bindefault N'[dbo].[Rpt_FldDEF_OrderEx_D]', N'[Rpt_FldDEF].[OrderEx]' GO EXEC sp_bindefault N'[dbo].[Rpt_FldDEF_TopEx_D]', N'[Rpt_FldDEF].[TopEx]' GO EXEC sp_bindefault N'[dbo].[Rpt_FldDEF_Visible_D]', N'[Rpt_FldDEF].[Visible]' GO EXEC sp_bindefault N'[dbo].[Rpt_FldDEF_Width_D]', N'[Rpt_FldDEF].[Width]' GO setuser GO set identity_insert Rpt_FldDEF on insert into dbo.Rpt_FldDEF(ID_Field, ID, Name, Expression, Condition, ModeEx, OrderEx, TopEx, LeftEx, Width, Height, Visible, Note, nameForeign, iColSize, FormatEx, iAlignStyle, iSize) select iD_Field, ID, Name, Expression, Condition, ModeEx, OrderEx, TopEx, LeftEx, Width, Height, Visible, Note, nameForeign, iColSize, FormatEx, iAlignStyle, iSize -- select * from tempdb..yld1 set identity_insert Rpt_FldDEF off go if exists (select * from tempdb..sysobjects where name='yld1') drop table tempdb..yld1 GO
通过上述SQL脚本可以看出来除了降级,还有操作是通过删除RPT开头的数据库表,再重建来解决此问题。
转载声明:本站发布文章及版权归原作者所有,转载本站文章请注明文章来源!
网友评论