数据迁移之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
如此那么这两张表的业务关联已经建立。
第四步,就是把刚才所添加的字段去掉。
其它的技术细节后面慢慢发出。
QQ:307266032
转载请注出处!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。