升级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

 

你可能感兴趣的:(升级U8 错误汇总)