有两个结构相同的数据库DATABASE1,DATABASE2,现要将DATABASE1中的表TABLE1的某一字段FIELD1的值赋给DATABASE2中TABLE1的相同字段FIELD1,条件是两数据库中表TABLE1的字段‘ID’值相同。  这个语句该怎么写呢?

解决方案 »

  1.   

    update database2..table1
    set  field1=database1..table1.field1
    where database2..table1.field.id=database2..table1.id
      

  2.   

    update t1 set t1.field1=t2.field2
    from DATABASE1.ADO.TABLE1 t1 
    left join DATABASE2.ADO.TABLE2 t2 on t1.id=t2.id(sql server 数据,你的id字段好像是关键字把)
      

  3.   

    update a set a.Field1 = b.Field2
    From DATABASE1..Table1 as a,DATABASE2..Table2 as b
    where a.ID = b.ID
      

  4.   

    update t1 set t1.field1=t2.field2
    from DATABASE1.ADO.TABLE1 t1 
    left join DATABASE2.ADO.TABLE2 t2 on t1.id=t2.id
      

  5.   

    上面各位给出的语句中DATABASE1指的是什么控件名称么?
      

  6.   

    还是报错,请给个实例吧。
    例如在硬盘上数据库文件名是 a.gdb 和 b.gdb,具体该怎么写?
      

  7.   

    INTERBASE数据库不太会  不过可以用个笨办法(完全在Delphi理处理)141:首先你应该为每个库(a.gdb,b.gdb)建了BDE,假如为BDE_A,BDE_B2。添加Table1,Query1两个控件,分别设他们的DateBaseName为BED_A,BDE_B
    Table1的TableName为TABLE1(你的表名),在Query1的sql中加 'select * from TABLE2' (Table2为你的另一个表名)Query1.active:=true;
    Query1.First;
     while not Query1.eof do
    begin
       if Table1.Locate('ID',query1.fieldbyname('ID').asstring,[]) then
          begin
            Table1.Update;
            Table1.FieldByName('field1').AsString:=Query1.FieldByName.('field2').AsString;
          end;
        Query1.Next;
    end;