问题描述:
在SQLserver中 怎样将两个库中同样结构的两个表的数据进行合并
数据有可能存在重复
表结构完全相同
解析:
可以将两个表中的数据提出来(重复的过滤)写入一个临时表中,清空这两个表,再将临时表的数据回写入这两个表里面。为防出错,请先备份数据库再 *** 作。
如:
第一步:select * from 数据库名1..表名1 into #临时表名
第二步:insert into #临时表名 (字段名1,字段名2……) (select a.字段名1,a.字段名2…… from 数据库名2..表名2 a,数据库名1..表名1 b where 数据库名2..表名2.主键字段名<>数据名1..表名1.主键字段名 )
第三步:delete from 数据库名1..表名1
第四步:delete from 数据库名2..表名2
第五步:insert into 数据库名1..表名1 from #临时表
第六步:insert into 数据库名2..表名2 from #临时表
第七步:drop table #临时表
注:如果两个表中没有主键,你只有在第二条语句中where 项中一个字段一个字段地添加条件判断了。
分类: 电脑/网络 >>程序设计 >>其他编程语言问题描述:
数据库1: unca
数据库2: unca1
都互相有
accwd 主键为: A
dattdf 主键为: B
iufer 主键为: C
floien 主键为: D
dengdq 主键为: E
等5个表 每个表的属性字段类型都一样
数据库1 有5万多条数据
数据库2 有7万多条数据
现在想 把2个数据库的数据合并
如果出现主键字段相同数据 就自动将那个重复的数据其中1条 主键号加上 自己设定的 2 这个数字
就是说 如果
accwd 表 字段:A G D F
5 77 66 88
5 44 33 77
我想要它遇到这情况后 在其中1条数据 的主键 后面加上2
如下 第一条加了2
accwd 表 字段:A G D F
52 77 66 88
5 44 33 77
这个语法该怎写呢?大家帮下~ 不知道这样解释高手是否能明白~:)
解析:
一句话做到是不太可能了,我想到的是
先用exists,把一个库中与另一库内重复的纪录的主键改变
然后用select into...合并表
具体不知道你用什么数据库,只大致写一下:
1,update db1.accwd t1 set a = a+'2' where exist select * from db2.accwd t2 where t1.a = t2.a
2, insert into db1.accwd select from select * from db2.accwd
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)