在SQL SERVER的企业管理器中,可以用导入/出功能;
也可以用DTS功能。

解决方案 »

  1.   

    你不要每增加一条记录写一次Post,为什么不组合500条记录近一个串,然后发一次post?
      

  2.   

    直接這樣寫 insert targettable SELECT a.* 
    FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
       'c:\XXX.mdb';'admin';'mypwd', sourcetable) 
       AS a 直接在程序中執行sql
      

  3.   

    如果是本地的话就用这个可以
    insert targettable SELECT a.* 
    FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
       'c:\XXX.mdb';'admin';'mypwd', sourcetable) 
       AS a 不过如果mdb文件在其他机子上的话就不行了
      

  4.   

    To w_rose(w_rose) :组合x条记录成一个串,然后发一次更新語句 -- 真是奇想,不過試驗如下:
    在相同條件下寫5000多條記錄,所用時間(秒):
       x       time
       1       45
       2       62
       5       78
      10       48
      20       52
      50       53
     100       62
     200       52
     500       119
    1000       199
      可見,並不是組合多就能節省時間.
      

  5.   

    to  yone(yone) , yoki(小马哥) : 類似
    “insert targettable SELECT a.* FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
       'c:\XXX.mdb';'admin';'mypwd', sourcetable) AS a ”
    對於全部覆蓋或者全部新增應該說是有效的,對於不規則離散更新還不行,簡單條件更新應該可以.
    例如:
        要把TableA表更新到TableB表,TableA,TableB表有共同的主鍵字段(FK1,FK2),除了主鍵字段和條件判斷字段FDT(DateTime型)是可知的,還有系列資料字段(FV1,FV2,FV3,...,FVk)並不固定,但對於程式是可以組合出字段名表的(資料字段就當作只有FV1,FV2,FV3).TableA,TableB有部分記錄主鍵相同,資料內容可能不同.
        要求把TableA表的FDT較大的(較新的)記錄,以及TableB中不存在的記錄,從TableA添加或者更新到TableB中,求解復合SQL語句,謝謝!
      

  6.   

    UPDATE B SET
     B.FV1=A.FV,B.FV2=A.FV,B.FV3=A.FV,B.FDT=A.FDT 
     FROM TableB AS B LEFT JOIN 
     OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
       'c:\XXX.mdb';'admin';'mypwd', TableA)
     AS A ON (B.FK1=A.FK1)AND(B.FK2=A.FK2)
     WHERE A.FDT>B.FDT;INSERT INTO TableB 
     SELECT A.* FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
       'c:\XXX.mdb';'admin';'mypwd', TableA) 
     AS A LEFT JOIN TableB AS B ON (B.FK1=A.FK1)AND(B.FK2=A.FK2)
     WHERE B.FK1 IS NULL;
    沒試過,不知道型不行.