数据迁移之sql server2005 中两表关联更新数据操作

近期在做数据迁移的工作,老系统的数据迁移到新系统,当中麻烦的确不少,因为是重新设计的系统与老系统中有太多的不一至性,例如表结构,字段的处理,像附件的存储方式,还有历史遗留数据。。。

后面会慢慢的把相关技术处理细节展现出来,当然,难度不大,只是琐碎事情太多。

今天就简单来看看数据的关联更新。

业务场景:

同一个业务,有一张主表及一张子表,字段差不多,只是老系统中主键生成方式GUID,而新的主键生成方式自增长型,这里就不论合不合理了,来看看我们的问题。

我们要做的就是把老数据导入到新表,并且保持他们的关联,如果不能就不对了。

假设业务对象:

取要用的字段,其它的略

两张老表名称:OLD_TABLE(GUID),OLD_TABLE_SUM(OLD_TABLE_GUID);

两张新表名称:TABLE(ID),TABLE_SUB(TABLE_ID)

 

那么我们现在来处理他们:

第一步,分别给新表增加加字段GUID,为关联数据作准备;

alter table dbo.TABLE    add GUID char(38)

alter table dbo.TABLE_SUB    add GUID char(38)

TABLE_SUB中的GUID中放的是 OLD_TABLE_SUB的OLD_TABLE_GUID);

大家应该已经都明白了。

 

第二步,复制表数据。

这个是依据表结构的差异来处理,这个就略了。

就是把OLD_TABLE 数据处理后复制给TABLE

把OLD_TABLE_SUB 数据处理后复制给 TABLE_SUB

到这一步该有的数据都有了,

 

第三步,修改数据让两表关系。

UPDATE tempA
SET
tempA.[TABLE_ID] = tempB.ID
from TABLE_SUB  tempA,TABLE tempB
WHERE tempA.GUID = tempB.GUID

如此那么这两张表的业务关联已经建立。

 

第四步,就是把刚才所添加的字段去掉。

 

其它的技术细节后面慢慢发出。

 

邮箱:[email protected]

QQ:307266032

 

转载请注出处!

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。