急急急!!!求SQL语句(200分)

Description of your first forum.

急急急!!!求SQL语句(200分)

帖子liyonggang » 星期二, 2004年8月31日 18:07


现有A.mdb和B.mdb两个数据库,如何以A为主,将B中的数据合并到A中,要求覆盖相同的数据,追加不同的数据。用SQL怎样实现?

(B实际是A的副本,B的记录后来有所更新,但原来的A中有更重要的数据是B中没有的。)

不知道我说清楚没有。先谢了!!!各位救命吧
 
 
 

急急急!!!求SQL语句(200分)

帖子eric_lx » 星期二, 2004年8月31日 18:51


如果你的数据库可以出现两条完全一致的记录的话,就放弃吧~~~~~~~~~~~~~~~~~~~~~

如果不是上面的情况,你很走运

你把2个mdb的数据导入到SQL Server里,然后写个存储过程处理一下

再用DTS导出
 
 
 

急急急!!!求SQL语句(200分)

帖子cszk4 » 星期二, 2004年8月31日 19:47


可以直接用DTS来将B中的数据导入到A中,条件是它们的表一样,表结构一样。如果记录完全相同,又有唯一性索引,就会自动略过。
 
 
 

急急急!!!求SQL语句(200分)

帖子liyonggang » 星期三, 2004年9月1日 13:07


to cszk4

请问DTS怎么用? 如果用MS_ACCESS行不行?
 
 
 

急急急!!!求SQL语句(200分)

帖子PLWang » 星期三, 2004年9月1日 13:16


装MSSQL了吗 有的话就用DTS
 
 
 

急急急!!!求SQL语句(200分)

帖子Peter_Xiong » 星期三, 2004年9月1日 13:19


参考一下:
//从Access导出表至Access数据库
procedure Access2Access(AccessFromName: String;      //源Access数据库完整文件名
                       AccessToName: String;        //目的Access数据库完整文件名
                       ATable: String               //Access表名
                       );
var
 AccessTo: TADOConnection;
 sqltmp: String;
begin
 AccessTo   := TADOConnection.Create(nil);
 try
   AccessTo.CommandTimeout := 0;
   AccessTo.Provider := 'Microsoft.Jet.OLEDB.4.0';
   AccessTo.LoginPrompt := False;
   AccessTo.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + AccessToName;

   //目的表存在则删除
   if TableExists(AccessToName, ATable) then DropAccessTable(AccessToName, ATable);

   sqltmp := 'SELECT * INTO [' + ATable + '] FROM [' + ATable + '] IN ' + QuotedStr (AccessFromName);

   AccessTo.Open;
   AccessTo.Execute(sqltmp);
 finally
   AccessTo.Free;
 end;
end;
[:D]
 
 
 

急急急!!!求SQL语句(200分)

帖子hbsxcjp » 星期三, 2004年9月1日 13:42


在Access里有个“同步复制”的概念,我没用过。你查查帮助,看能不能解决?
 
 
 

急急急!!!求SQL语句(200分)

帖子liyonggang » 星期五, 2004年9月17日 12:50


自己搞定了,还是要多谢各位!
 
 
 

急急急!!!求SQL语句(200分)

帖子qian0303 » 星期五, 2004年9月17日 13:07


在sql里写上路径
 
 
 

急急急!!!求SQL语句(200分)

帖子liyonggang » 星期三, 2004年12月29日 10:03


各位接分!