我有四张表,表A是在ACCESS数据,表B,C,D在SQLSERVER数据库
问题:
现要把 A表里a,b,c字段,B表里,d字段,C表的e,f,g字段,D表的h,i,j字段查询出来在插入 SQL SERVER 的 E表里面,E表不是插入时候建的新表是以前就有的表。已知条件:1.表A的b字段所有值,跟表B的b字段一样
2.表C的e字段的值跟表D的g字段一样目前代码只写到把表A,表B的字段查询出来插入E表。
代码如下:insert into E(a,b,c,d)
select a.a,a.b,a.c,b.d
FROM B b left join (select *from OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0', 'Data Source="D:\Uso\Data\Bill.mdb";User ID=Admin;Password=' )...A) as a
on a.b=b.b
接下来在上面的代码完成C表D表的相关字段插入到E表insert into E(a,b,c,d,e,f,h,i)
select a.a,a.b,a.c,b.d
FROM B b left join (select *from OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0', 'Data Source="D:\Uso\Data\Bill.mdb";User ID=Admin;Password=' )...A) as a
on a.b=b.b,C c left join D d on c.e = d.g
以上代码执行后能查出数据并且插入。但执行时间尽然花了4分多钟问题出现了
数据量本来就不大A表就几百条数据 B表C表D表都是一万多条数据
但是插入到E表的时候尽然能达到8776352条数据
好像数据重复了。如图:红色部分是ID。已经达到 8776352了汗!!! 请问如果要实现问题,不出现重复代码该怎么写或者优化。
问题:
现要把 A表里a,b,c字段,B表里,d字段,C表的e,f,g字段,D表的h,i,j字段查询出来在插入 SQL SERVER 的 E表里面,E表不是插入时候建的新表是以前就有的表。已知条件:1.表A的b字段所有值,跟表B的b字段一样
2.表C的e字段的值跟表D的g字段一样目前代码只写到把表A,表B的字段查询出来插入E表。
代码如下:insert into E(a,b,c,d)
select a.a,a.b,a.c,b.d
FROM B b left join (select *from OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0', 'Data Source="D:\Uso\Data\Bill.mdb";User ID=Admin;Password=' )...A) as a
on a.b=b.b
接下来在上面的代码完成C表D表的相关字段插入到E表insert into E(a,b,c,d,e,f,h,i)
select a.a,a.b,a.c,b.d
FROM B b left join (select *from OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0', 'Data Source="D:\Uso\Data\Bill.mdb";User ID=Admin;Password=' )...A) as a
on a.b=b.b,C c left join D d on c.e = d.g
以上代码执行后能查出数据并且插入。但执行时间尽然花了4分多钟问题出现了
数据量本来就不大A表就几百条数据 B表C表D表都是一万多条数据
但是插入到E表的时候尽然能达到8776352条数据
好像数据重复了。如图:红色部分是ID。已经达到 8776352了汗!!! 请问如果要实现问题,不出现重复代码该怎么写或者优化。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货