我现在有一个SERVER2000的数据库TYC,里面有一张表CUSTOMER,这个表中其中有一个字段为OAADRESS是表示送货地点的,
因为录入资料时我为空的,而现在我想用一个EXCEL中的数据更新它。CUSTOMER
ID   OAADRESS
1      
2
3EXCEL
ID  OAADRESS
1    AA
2    BB
3    CC应怎样做呢?SQL语句怎样写呢?请好心人提供代码?

解决方案 »

  1.   

     可以先把execl数据导入到一个临时表内
    可以先把execl数据导入到一个sql server表内inexcel内,然后
    update  CUSTOMER a  set a.OAADRESS =  
      (select  oaadress from inexcel b where a.id=b.id )
      

  2.   

    我刚在我的资源里放了个我自己做的数据互导工具,可以解决你的问题。在查询的上边有个方按钮,用它来选择你的EXECL文件,然后在选择源数据库中点选EXECL,在select * from 后加上[sheet1$]--你的表名。我做了个JPG的说明,你也下一个好了。
      

  3.   

    JPG中的SQL表名应该是SQL库名,上下的几个相同的
      

  4.   

    update  CUSTOMER a  set a.OAADRESS =  
      (select  oaadress from inexcel b where a.id=b.id ) 服务器: 消息 170,级别 15,状态 1,行 1
    第 1 行: 'A' 附近有语法错误。提示有上面的错误
      

  5.   


    update  a  
    set a.OAADRESS =  b.oaadress 
    from CUSTOMER  a, inexcel b 
    where a.id=b.id 
      

  6.   

    http://topic.csdn.net/u/20090116/15/5cc5069f-b09e-47ab-ba77-cc6277120fa8.html
      

  7.   

     这个朋友的问题,和我的问题一样,我也想实现这样一个功能,把EXCEL里面的数据更新到SQL2000中,但是我是想通过delphi的按钮实现,不是在数据库里面写!!请高手请教!!!我自己也尝试写了一下,不知道错误!!下面是代码:
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, RzButton, ADODB, Provider, DBClient, DB, Grids, DBGridEh,
      RzShellDialogs;type
      TForm1 = class(TForm)
        ADOConnection1: TADOConnection;
        DBGridEh1: TDBGridEh;
        DataSource1: TDataSource;
        ADOConnection2: TADOConnection;
        ADOQuery1: TADOQuery;
        DataSource2: TDataSource;
        DBGridEh2: TDBGridEh;
        RzBitBtn1: TRzBitBtn;
        ADOQuery2: TADOQuery;
        procedure FormCreate(Sender: TObject);
        procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
        procedure RzBitBtn1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
    try
      ADOConnection2.Connected:=true;
     Except
      Application.MessageBox('数据库连接失败,请检查参数!','警告',mb_iconwarning)
     end;
    end;procedure TForm1.RzBitBtn1Click(Sender: TObject);
    begin
    with ADOQuery2 do begin
      ADOQuery2.SQL.clear;
      ADOQuery2.SQL.add('select * from [sheet1$]');
      open;
      first;
    end;while not ADOQuery2.eof do begin
      with ADOQuery1 do begin
      begin
        ADOQuery1.SQL.clear;
        ADOQuery1.SQL.add('insert into Pub_Btype (FullName,UserCode) values (:名称,:编码)');
        ADOQuery2('名称').value:=adoquery2.fieldbyname('FullName').asstring;
        execsql;
      end;
      ADOQuery2.next;
      end;
    end;
    end;procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
    ADOConnection2.Connected:=false;
    end;end.
    错误提示:[Error] Unit1.pas(60): Missing operator or semicolon
    [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
      

  8.   

      with ADOQuery1 do begin 
      begin 
        ADOQuery1.SQL.clear; 
        ADOQuery1.SQL.add('insert into Pub_Btype (FullName,UserCode) values (:名称,:编码)'); 
        ADOQuery2('名称').value:=adoquery2.fieldbyname('FullName').asstring; 
        execsql; 
      end; 
    怎么两个begin,你得错误应该是begin..end配对错误,你的代码写的很不规范,建议看一下代码书写规范