用msde管理工具执行以下脚本,具体方法:
运行msde管理工具,确定登录(如果有sql密码,要输入密码登录)
然后点脚本-执行,数据库选择出错的数据库,比如的你的2013出错,就选择UFDATA_(帐套号)_2013,然后在语句区中把下面的脚本文字复制进去,点执行,然后再升级,同样2014年也这么执行一下,管理工具在最下面附加里,自己下载下
alter table MatchVouch add bReqAnalyse bit,dIssueDate varchar(16)
GO
/****** 对象: StoredProcedure [dbo].[ST_CalBegInvAge] 脚本日期: 08/15/2014 13:12:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--计算上年结存库龄
CREATE PROCEDURE [dbo].[ST_CalBegInvAge]
@cDBName Varchar(20), --上一个账套名称
@CurrentDate Datetime, --计算日期
@cCurDBName varchar(20) --当前账套名称
As
Declare @strLeftQty nVarchar(4000)
Declare @StockStartDate datetime
declare @cWhCode nvarchar(50)
declare @cInvCode nvarchar(50)
declare @cBatch nvarchar(50)
declare @cFree1 nvarchar(120)
declare @cFree2 nvarchar(120)
declare @iQtty float
declare @iNum float
declare @autoId int
declare @iVouchQtty float
declare @iVouchNum float
declare @iTempQtty float
declare @iTempNum float
declare @strSQLInvAge nVarchar(4000)
declare @strInvAge nVarchar(4000)
declare @strSQLIn nVarchar(4000)
declare @strSQLOut nVarchar(4000)
declare @strNewRecord nVarchar(4000)
declare @strSql nVarchar(200)
declare @sSQL nVarchar(200)
declare @sBegdate As nVarchar(200)
declare @iCou int
--取库存启用日期
Set @sBegdate = N'select @StockStartDate = cast(cValue as Datetime) from ' + @cDBName + '..accinformation ' + ' Where cSysid=''ST'' and cName= ''dSTStartDate'' '
exec sp_executesql @sBegdate,N'@StockStartDate datetime output', @StockStartDate output
If @StockStartDate is Null
Begin
Return
End
--计算本期当前结存
Set @strNewRecord = N'Insert Into ' +@cDBName+'..STStockAgeTempTable(autoid, iqtty, inum)
values(@autoid, @iTempQtty, @iTempNum) '
set @strLeftQty =
' SELECT cWhCode,
cInvCode,
IsNull(cBatch,'''') As cBatch,
IsNull(cFree1,'''') As cFree1,
IsNull(cFree2,'''') As cFree2,
SUM(case when bRdFlag = 1 then iQuantity else -iQuantity end) as iQtty,
SUM(case when bRdFlag = 1 then iNum else - iNum end) AS iNum
From( Select bRdFlag, cWhCode, cInvCode, iQuantity, INum, cBatch, cFree1, cFree2
From '+ @cDBName+'..ST_BegInvAge
Union ALL
Select R.bRdFlag, R.cWhCode, Rs.cInvCode, Rs.iQuantity, Rs.INum, Rs.cBatch, Rs.cFree1, Rs.cFree2
From ' + @cDBName+ '..RdRecord R inner join '+@cDBName+'..RdRecords Rs on R.id = Rs.id
Where R.dDate >= @StartDate And R.dDate <= @CurrentDate And cVouchType <>''33'' And cVouchType <>''34''
) X
group by cWhCode, cInvCode, IsNull(cBatch,''''),IsNull(cFree1,''''), IsNull(cFree2,'''') '
--取入库语句
Set @strSQLIn = ' Select AutoId, iQtty, iNum
From (Select dDate, AutoId, abs(iQuantity) As iQtty, abs(iNum) As iNum
From '+@cDBName+'..ST_BegInvAge
Where cWhCode = @cWhCode and cInvCode = @cInvCode and isnull(cBatch,'''') = @cBatch
and isnull(cFree1,'''') = @cFree1 and isnull(cFree2,'''') = @cFree2
Union ALL
Select d.dDate,ds.autoid, Abs(ds.iQuantity) as iQtty, Abs(ds.iNum) as iNum
from '+@cDBName+'..RdRecord d join ' + @cDBName + '..RdRecords ds on (d.id = ds.id)
where ( (d.bRdFlag = 1 and ds.iQuantity >0) or (d.bRdFlag <>1 and ds.iQuantity <0))
And d.dDate >= @StartDate and d.dDate <= @CurrentDate and d.cWhCode = @cWhCode
and ds.cInvCode = @cInvCode and IsNull(ds.cBatch,'''') = @cBatch and IsNull(ds.cFree1,'''') = @cFree1
and IsNull(ds.cFree2,'''') = @cFree2) X
order by dDate Desc,AutoID Desc for read only '
Set @strSQLIn = N' declare curInvIn insensitive cursor for ' + @strSQLIn
set @strLeftQty = N'declare curRd cursor for ' + @strLeftQty
execute sp_executesql @strLeftQty,
N'@CurrentDate Datetime, @StartDate Datetime',
@CurrentDate, @StockStartDate
open curRd
fetch next from curRd into
@cWhCode,@cInvCode,@cBatch,
@cFree1,@cFree2,@iQtty, @iNum
--建立计算结果临时表
Set @sSQL = N'select @Num = count(1) from ' + @cDBName + '..sysobjects ' + ' Where name = ''STStockAgeTempTable'' '
exec sp_executesql @sSQL,N'@Num int output', @iCou output
If @iCou <>0
Begin
Exec (' Drop Table ' + @cDBName+'..STStockAgeTempTable')
End
Exec (' Create Table '+@cDBName+'..STStockAgeTempTable (autoId int , iQtty float, iNum float)')
--sp_help ST_BegInvAge
while @@fetch_status = 0
begin
if(@iQtty <0 ) set @iQtty = 0
if(@iNum <0 or @iNum is null) set @iNum = 0
Set @iTempQtty = 0.0
Set @iTempNum = 0.0
--按降序取入库
execute sp_executesql @strSQLIn,
N'@CurrentDate Datetime, @StartDate Datetime, @cWhCode varchar(50),
@cInvCode varchar(20), @cBatch varchar(50),
@cFree1 varchar(120), @cFree2 varchar(120)',
@CurrentDate, @StockStartDate, @cWhCode, @cInvCode, @cBatch, @cFree1, @cFree2
open curInvIn
fetch next from curInvIn into @autoId, @iVouchQtty, @iVouchNum
while (round(@iQtty,6) >0 or round(@iNum,6) >0) and @@fetch_status =0
begin
if Round(@iQtty, 6) >Round(@iVouchQtty, 6)
begin
set @iTempQtty = @iVouchQtty
set @iQtty = Round(@iQtty, 6) - Round(@iVouchQtty, 6)
end
else begin
set @iTempQtty = @iQtty
set @iQtty = 0.0
end
if Round(@iNum, 6) >Round(@iVouchNum,6)
begin
set @iTempNum = @iVouchNum
set @iNum = Round(@iNum, 6) - Round(@iVouchNum, 6)
end
else begin
set @iTempNum = @iNum
set @iNum = 0.0
end
--增加计算结果
execute sp_executesql @strNewRecord,
N'@autoid int, @iTempQtty float, @iTempNum float',
@autoid, @iTempQtty, @iTempNum
Set @iTempQtty = 0.0
Set @iTempNum = 0.0
fetch next from curInvIn into @autoid, @iVouchQtty, @iVouchNum
end
close curInvIn
deallocate curInvIn
fetch next from curRd into
@cWhCode,@cInvCode,@cBatch,@cFree1,@cFree2,@iQtty, @iNum
end
close curRd
deallocate curRd
--将结果数据输出
set @strSQLInvAge =N'
Select [ID], [bRdFlag],[cVouchType],[cWhCode] ,[dDate] ,
[cCode],[cRdCode],[cDepCode] ,[cPersonCode] ,[cVenCode] ,
[cHandler] ,[cMemo] ,[cMaker] ,[cDefine1] ,[cDefine2] ,
[cDefine3] ,[cDefine4] ,[cDefine5] ,[cDefine6] ,[cDefine7] ,
[cDefine8] ,[cDefine9] ,[cDefine10] , RT.[AutoID] ,[cInvCode],
(case when x.bRdFlag = 0 then -1 * RT.[iNum] else RT.[iNum] end) As iNum,
(case when x.bRdFlag = 0 then -1 * RT.[iQtty] else RT.[iQtty] end) As iQuantity ,
[iUnitCost] ,[iPrice] ,[cBatch],[cFree1] ,
[cFree2] ,[dVDate] ,[cDefine22] ,[cDefine23] ,[cDefine24] ,
[cDefine25] ,[cDefine26] ,[cDefine27] ,[cItem_class] , [cItemCode] ,
[cName] ,[cItemCName]
Into '+ @cCurDBName+'..ST_BegInvAge
From '+@cDBName+'..STStockAgeTempTable RT Inner Join (
Select [ID], [bRdFlag],[cVouchType],[cWhCode] ,[dDate] ,
[cCode],[cRdCode],[cDepCode] ,[cPersonCode] ,[cVenCode] ,
[cHandler] ,[cMemo] ,[cMaker] ,[cDefine1] ,[cDefine2] ,
[cDefine3] ,[cDefine4] ,[cDefine5] ,[cDefine6] ,[cDefine7] ,
[cDefine8] ,[cDefine9] ,[cDefine10] ,[AutoID] ,[cInvCode],
[iNum] ,[iQuantity] ,[iUnitCost] ,[iPrice] ,[cBatch],[cFree1] ,
[cFree2] ,[dVDate] ,[cDefine22] ,[cDefine23] ,[cDefine24] ,
[cDefine25] ,[cDefine26] ,[cDefine27] ,[cItem_class] , [cItemCode] ,
[cName] ,[cItemCName]
From '+@cDBName+'..ST_BegInvAge
Union All
Select R.[ID], [bRdFlag],[cVouchType],[cWhCode] ,[dDate] ,
[cCode],[cRdCode],[cDepCode] ,[cPersonCode] ,[cVenCode] ,
[cHandler] ,[cMemo] ,[cMaker] ,[cDefine1] ,[cDefine2] ,
[cDefine3] ,[cDefine4] ,[cDefine5] ,[cDefine6] ,[cDefine7] ,
[cDefine8] ,[cDefine9] ,[cDefine10] ,[AutoID] ,[cInvCode],
[iNum] ,[iQuantity] ,[iUnitCost] ,[iPrice] ,[cBatch],[cFree1] ,
[cFree2] ,[dVDate] ,[cDefine22] ,[cDefine23] ,[cDefine24] ,
[cDefine25] ,[cDefine26] ,[cDefine27] ,[cItem_class] , [cItemCode] ,
[cName] ,[cItemCName]
From '+@cDBName+'..RdRecords Rs inner join '+@cDBName+'..RdRecord R On (R.ID = Rs.ID)
Where dDate >= @StartDate And dDate <= @CurrentDate And cVouchType <>''33'' And cVouchType <>''34''
) X On RT.autoId = X.autoId
'
execute sp_executesql @strSQLInvAge,
N'@CurrentDate Datetime, @StartDate Datetime',
@CurrentDate,
@StockStartDate
用友畅捷通T3升级到用友畅捷通T+,用友畅捷通T+中有升级工具的,但是对T3的升级数据有要求:
1、用友畅捷通T3普及版和标准版都只能升级总账模块的凭证数据和基础档案、存货档案、期初余额。不能升级其他模块的数据。
2、将T3备份的数据拷贝到T+服务器上,然后使用T+系统管理中的恢复工具将T3的数据库恢复进入。
3、使用T+自带的升级工具升级数据。在升级时选择产品线、账套。如图所示:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)