我有四张表,表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.表Ab字段所有值,跟表Bb字段一样
2.表Ce字段的值跟表Dg字段一样目前代码只写到把表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了汗!!! 请问如果要实现问题,不出现重复代码该怎么写或者优化。

解决方案 »

  1.   

    建议你用MSSQL的数据导入功能
      

  2.   

    同建议,导入后在SQL处理,肯定更高效.
      

  3.   

    等待F大哥哦!F大哥可不可以加我到SQL后花园啊!!!!
      

  4.   

    DTS那么好用的东西  你还亲自写语句导
      

  5.   

    哦。我是把 后缀为DB的数据文件 勇ACCESS打开 保存到ACCESS 数据库的!