我要在程序中将access中的某些表中的数据导入到sql server中,如果sql server表中已有该条记录,则update,否则insert。两种库结构完全一样,在程序中怎么写??
好急,拖了很长时间了,用户要实现的是分布式数据库的数据集中管理办法,而且不联网,我先把本地的sql server中的某些表导入到一个相同结构的access中。然后再把access导到中心数据库中。

解决方案 »

  1.   

    /*************导出到Access********************/
    insert into openrowset('Microsoft.Jet.OLEDB.4.0', 
       'x:\A.mdb';'admin';'',A表) select * from 数据库名..B表/*************导入Access********************/
    insert into B表 selet * from openrowset('Microsoft.Jet.OLEDB.4.0', 
       'x:\A.mdb';'admin';'',A表)
      

  2.   

    一、SQLServer和Access1、查询Access中数据的方法:select * from OpenRowSet('microsoft.jet.oledb.4.0',';database=c:\db2.mdb','select * from serv_user')或select * from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="c:\DB2.mdb";User ID=Admin;Password=')...serv_user2、从SQLServer向Access写数据:insert into OpenRowSet('microsoft.jet.oledb.4.0',';database=c:\db2.mdb','select * from Accee表')
    select * from SQLServer表
    或用BCPmaster..xp_cmdshell'bcp "serv-htjs.dbo.serv_user" out  "c:\db3.mdb" -c -q -S"." -U"sa" -P"sa"'上面的区别主要是:OpenRowSet需要mdb和表存在,BCP会在不存在的时候生成该mdb3、从Access向SQLServer写数据:有了上面的基础,这个就很简单了insert into SQLServer表 select * from 
    OpenRowSet('microsoft.jet.oledb.4.0',';database=c:\db2.mdb','select * from Accee表')或用BCPmaster..xp_cmdshell'bcp "serv-htjs.dbo.serv_user" in  "c:\db3.mdb" -c -q -S"." -U"sa" -P"sa"'4、删除Access数据:delete from OpenRowSet('microsoft.jet.oledb.4.0',';database=c:\db2.mdb','select * from serv_user')
    where lock=05、修改Access数据:update OpenRowSet('microsoft.jet.oledb.4.0',';database=c:\db2.mdb','select * from serv_user')
    set lock=1SQLServer和Access大致就这么多。
      

  3.   

    我就是不知道怎么写啊access和SQL SERVER匹配看两条记录是否相同的那段代码阿?