问题现象: | U852升级到U890时出现错误: 860[Main]升级 关闭了系统数据库连接 重新打开了系统数据库连接 开始读取升级列表 结束读取升级列表 开始事务 数据库名: UFDATA_888_2006 C:U8SOFTAdminSQLFILE8600MainUfdataDSTR860_Public.sql 错误信息: -2147217900 对象 '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_888_2006数据库 Update_DelRepeat.sql,2011-06-20 11:54:33 -- 2011-06-20 11:54:35,0小时0分钟2秒。 升级起始时间:2011-06-20 11:54:12,结束时间:2011-06-20 11:54:41,0小时0分钟29秒。 |
问题原因: | |
解决方案: | 1:data库下执行1.sql脚本(见附件且附加发邮箱lifengc@ufida.com.cn) 2:将Person表cPersonCode字段长度改为20。 3:将variationbilltype表iOrder、iVoucherType字段允许为空。 4:将VariationBillOptions表iActionOrder字段允许为空。 5:将DSTR860_Public.sql、dpstr860_qm.sql、Data_STR_SR_mix_NL.sql 覆盖到adminsql.rar下相应的文件目录下。 adminsql.rarsqlfile8600MainUFDataDSTR860_Public.sql adminsql.rarsqlfile8600MainUFDatadpstr860_qm.sql adminsql.rarsqlfile8700MainUFDataStructureData_STR_SR_mix_NL.sql 升级成功,见附件。 【说明】 由于环境不同,可能升级过程中出现的错误提示不同,可根据提示进行修改。然后在进行升级。 |
相关补丁: | |
版本: | 8.90 |
模块: | 数据复制 |
产品: | 系统工具及环境 |
问题名称: | U8.52升级到U890出现错误 |
最后更新: | 2011-06-29 23:04:22 |