升级U8 错误汇总

错误1:
数据库名: UFDATA_005_2008
C:\U8SOFT\Admin\SQLFILE8600\Main\Ufdata\DSTR860_Public.sql
错误信息:
-2147217900z
对象'PersonMSG_PK' 依赖于 列'cPersonCode'。

执行如下语句时出错:

--===========郑芸部分(End)======================

--===========侯玉保部分(Begin)======================
--业务员(Person)

if ((select length from syscolumns where id=OBJECT_ID('Person') and name='cPersonCode')<20)
begin
   declare @fConst varchar (100)
   declare @fTbl varchar (100),@fCol varchar (100)
   declare @rTbl varchar (100),@rCol varchar (100)
   select object_name(constid) as col1,object_name(fkeyid) as col2,object_name(rkeyid) as col3,
  col_name(fkeyid,fkey) as col4,col_name(rkeyid,rkey) as col5
                into tempdb..tblfkey
  from sysforeignkeys
  where object_name(rkeyid)='Person' and col_name(rkeyid,rkey)='cPersonCode'
   declare Rst cursor for select * from tempdb..tblfkey
   --删除关系并改变长度
   open Rst
      fetch next from Rst into @fConst, @fTbl, @rTbl, @fCol,@rCol
   while @@fetch_status=0
      begin
         exec ('ALTER TABLE ' + @fTbl + ' Drop Constraint ' + @fConst)
         exec ('ALTER TABLE ' + @fTbl + ' alter column ' + @fCol + ' varchar(20) NULL')
         fetch next from Rst into @fConst, @fTbl, @rTbl, @fCol,@rCol
      end
   ALTER TABLE Person alter column cPersonCode varchar(20) NOT NULL
   close Rst
   --恢复原来的关系
   open Rst
      fetch next from Rst into @fConst, @fTbl, @rTbl, @fCol,@rCol
   while @@fetch_status=0
      begin
         print @fConst
         exec ('ALTER TABLE ' + @fTbl + ' ADD 
      CONSTRAINT ' + @fConst + ' FOREIGN KEY 
      ( ' +
    @fCol
         + ') REFERENCES ' + @rTbl + ' ( ' +
    @rCol
       + ')')

         fetch next from Rst into @fConst, @fTbl, @rTbl, @fCol,@rCol
      end
   close Rst
   DEALLOCATE Rst
   drop table tempdb..tblfkey
end

 

效率测试报告:开始升级UFDATA_005_2008数据库

Update_DelRepeat.sql,2013-5-14 13:56:41 -- 2013-5-14 13:56:42,0小时0分钟1秒。

    升级起始时间:2013-5-14 13:56:33,结束时间:2013-5-14 13:56:47,0小时0分钟14秒。


解决办法:
IF  EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[PersonMSG]') AND name = N'PersonMSG_PK')
ALTER TABLE [dbo].[PersonMSG] DROP CONSTRAINT [PersonMSG_PK]

 


错误2:
数据库名: UFDATA_005_2008
C:\U8SOFT\Admin\SQLFILE8600\Main\Ufdata\DPRD860_GS__UP.sql
错误信息:
-2147217900
第 1 行、第 16 列(iSetDigitSign)出现大容量加载数据转换错误(溢出)。

执行如下语句时出错:
<Strategy RunType='bcp'  Table='AA_Columndic' FileName='aa_columndicBcp66D474FD-AF78-4ED9-AFD2-D00F35A844A4.dat'  SQLType='Insert'></Strategy>


解决办法:
if exists (select * from sysobjects where name='DF__aa_column__iSetD__785593C5' and type='K' and id=object_id('AA_ColumnDic'))   ALTER TABLE AA_ColumnDic DROP CONSTRAINT DF__aa_column__iSetD__785593C5
GO
Alter Table AA_Columndic Drop Column  iSetDigitSign
GO


错误3:
数据库名: UFDATA_005_2008
C:\U8SOFT\Admin\SQLFILE8610\Main\Ufdata\data\NL\Data_Data_AP_mix_NL.sql
错误信息:
-2147217873
违反了 PRIMARY KEY 约束 'aaaaaAp_InputCode_PK'。不能在对象 'dbo.ap_inputcode' 中插入重复键。

执行如下语句时出错:
insert into ap_inputcode(cnum,cnote,cnote_f,cFlag)
values(N'52',N'出口收入科目',N'ckkm',N'R')

解决办法:
declare @num  varchar(2)
set @num=(select max(cnum)+ 1 from  ap_inputcode where cnum<>'99')
insert into ap_inputcode(cnum,cnote,cnote_f,cFlag)
values(@num,N'出口收入科目',N'ckkm',N'R')


错误4:
数据库名: UFDATA_005_2008
C:\U8SOFT\Admin\SQLFILE8610\Main\Ufdata\data\NL\Data_Upda_OM_mix_NL.sql
错误信息:
-2147217900
列名 'irdsid' 不明确。

执行如下语句时出错:

/*升级设置委外材料出库单的参与结算次数ibillsettlecount字段   黄朝阳*/

/*生成每行委外入库单参与结算的次数*/
--必须执行的脚本策略相关
select irdsid, count(irdsid) as settlecount into #BillSettleCount from (select distinct PurSettleVouch.psvid,irdsid from PurSettleVouch inner join PurSettleVouchs on PurSettleVouch.psvid=PurSettleVouchs.psvid  inner join PurBillVouchs ON PurSettleVouchs.ibsid=PurBillVouchs.ID AND PurBillVouchs.bExbill=0) A group by irdsid
/*计算对应委外材料出库单的参与结算次数并更新材料出库单*/
update rdrecords set iBillSettleCount=isnull(billsettlecount,0) from (select B.irdsid,sum(#BillSettleCount.settlecount) as billsettlecount from #BillSettleCount inner join OM_MatSettleVouchs A on  #BillSettleCount.irdsid =A.irdsid and A.cvouchtype=N'01' inner join OM_MatSettleVouchs B on B.msid = A.msid and B.cvouchtype=N'11' group by B.irdsid) C inner join rdrecords on rdrecords.autoid=C.irdsid

drop table #BillSettleCount

解决办法:
select irdsid, count(irdsid) as settlecount into #BillSettleCount from (select distinct PurSettleVouch.psvid,PurSettleVouchs.irdsid from PurSettleVouch inner join PurSettleVouchs on PurSettleVouch.psvid=PurSettleVouchs.psvid  inner join PurBillVouchs ON PurSettleVouchs.ibsid=PurBillVouchs.ID AND PurBillVouchs.bExbill=0) A group by irdsid


错误5:
数据库名: UFDATA_005_2008
C:\U8SOFT\Admin\SQLFILE8610\Main\Ufdata\data\DP\DATA_DP_OM_MIX_NL.sql
错误信息:
-2147217900
列名 'irdsid' 不明确。

执行如下语句时出错:

/*升级设置委外材料出库单的参与结算次数ibillsettlecount字段   黄朝阳*/

/*生成每行委外入库单参与结算的次数*/
--必须执行的脚本策略相关
select irdsid, count(irdsid) as settlecount into #BillSettleCount from (select distinct PurSettleVouch.psvid,irdsid from PurSettleVouch inner join PurSettleVouchs on PurSettleVouch.psvid=PurSettleVouchs.psvid  inner join PurBillVouchs ON PurSettleVouchs.ibsid=PurBillVouchs.ID AND PurBillVouchs.bExbill=0) A group by irdsid
/*计算对应委外材料出库单的参与结算次数并更新材料出库单*/
update rdrecords set iBillSettleCount=isnull(billsettlecount,0) from (select B.irdsid,sum(#BillSettleCount.settlecount) as billsettlecount from #BillSettleCount inner join OM_MatSettleVouchs A on  #BillSettleCount.irdsid =A.irdsid and A.cvouchtype=N'01' inner join OM_MatSettleVouchs B on B.msid = A.msid and B.cvouchtype=N'11' group by B.irdsid) C inner join rdrecords on rdrecords.autoid=C.irdsid

解决办法:
select irdsid, count(irdsid) as settlecount into #BillSettleCount from (select distinct PurSettleVouch.psvid,PurSettleVouchs.irdsid from PurSettleVouch inner join PurSettleVouchs on PurSettleVouch.psvid=PurSettleVouchs.psvid  inner join PurBillVouchs ON PurSettleVouchs.ibsid=PurBillVouchs.ID AND PurBillVouchs.bExbill=0) A group by irdsid

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
用友U8升级问题汇总 升级问题: 1、升级过程中提示“将varchar值Ap_p转换为数据类型为int的列时发生语法错误” 碰到该问题后,然后进行再次升级升级成功。 2\升级过程中提示“违反了PRIMARY KEY 约束'Rpt_FltDEF_PK'。不能在对象'Rpt_FltDEF'中插入重复键。” 解答:引入客户数据进行升级,也发现相同的错误提示“违反了PRIMARY KEY 约束'Rpt_FltDEF_PK'。不能在对象'Rpt_FltDEF'中插入重复键。”,根据提示怀疑为象Rpt_FltDEF表中的主键存在问题,在企业管理器中查询该表的主键为ID_Flt字段。第一反应为该字段是否存在重复的值。执行语句:select ID_Flt from Rpt_FltDEF group by ID_Flt having count(ID_Flt)>1发现ID_Flt并没有重复的值。和演示账套对比该表的属性发现:主键ID_Flt为标识字段,演示账套标识值为“是”,而客户的数据中的值为“是(不适用于复制)”。故试着将值改为“是”。由于表rpt_glbdef,rpt_flddef与该表关系密切且标识值也为“是(不适用于复制)”,因此将rpt_glbdef,rpt_flddef也做同样修改。再次升级成功。同样ZT021,ZT023做以上处理后也升级成功。 解决方案:在企业管理器中将Rpt_FltDEF,rpt_glbdef,rpt_flddef三张表的主键标识值改为“是” 3、821升级861后登陆薪资管理失败 问题原因: 由于用户在821的版本中手工增加了“计件工资”这个工资项目,实际上在821版本中系统 并没有预制这个工资项目。而在861版本中预制了“计件工资”项目,且“计件工资”项目在数据库的工资项目设置表(WA_Gztblset)中的工资项目标识(iGZItem_id)规定为7,这是不能修改的!解决方法:在821版本中将工资项目设置表(WA_Gztblset)的工资项目名称(cSetGZItemName)字段的“计件工资”记录改名(例如:计件工资1),再进行升级即可。 4、升级后应收应付单据号不能自动编号: 在应收和应付模块中,应收单(应付单)和收付款单的单据号不能由系统自动带出,无论如何修改单据编号的原则都不行.而进销存模块中的单据都可以依照单据编号原则由系统自动给出单据号,用户是由8.21升级到8.61的. 问题解决: 该问题属于ua_account_sub表中缺少相应数据记录造成的,可以用以下方法解决: 1、执行如下脚本: use ufsystem INSERT INTO ua_account_sub VALUES ('900', '2004', 'ap', '0','1','0','2004-12-01',null,'') INSERT INTO ua_accou

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值