如题

解决方案 »

  1.   

    你写SP ,把需要同步的数据写在里面方法
    1。建立linkserver
    2.或者http://blog.csdn.net/ws_hgo/article/details/5518918然后使用JOB 执行这个SP
      

  2.   

    mssql 的 job  用openrowset()或opendatasoure()读取access 的数据
    两者可能需要在同一个服务器上。
      

  3.   


    靠这个版本好垃圾1你写SP ,把需要同步的数据写在里面方法
    1)建立linkserver
    2)或者http://blog.csdn.net/ws_hgo/article/details/5518918
    2.然后使用JOB 执行这个SP
      

  4.   

    link server 可以么?怎么做?
    我只查到SSMA的方法,但是这样做不是时时的,要手动操作
      

  5.   

    都是要放到job 里面去做的,你可以设置job的执行频率尽可能的频繁
      

  6.   

    用sql job或维护执行定期执行存储的方式来实现。
    具体步骤如下:
    1.如果你的access的表里有数据的更新时间,则每次更新或者插入数据时,更新时间(或通过各种其他方法),如果没有时间,则通过主键比较,可能效率低一些。2. 在sql server中建立连接,创建存储过程,连接到access中,根据更新时间或者主键比较,对于新数据进行更新或者插入。3. 在Sql Server中建立sql 作业或维护计划,定期执行上述的存储过程。
      

  7.   


    MSDN上面有的 
    http://msdn.microsoft.com/en-us/library/aa213778(v=sql.80).aspx
      

  8.   

    你也可以
    使用OpenDataSource函数,OPENROWSET函数 
      

  9.   

    也就是说link server也是靠job来保证时时性的啊。。
    我还期望有sqlserver里面的复制数据库的那种东西来做呢。
    请问一下有没有除了job以外的方法呢?
      

  10.   

    不好意思又有新问题了。
    我试了下下面的方法
    select ID,Title,OwnerName from 
    opendataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:/BJData.mdb";')...BJAdmin但是报下面的错误:OLE DB provider 'Microsoft.Jet.OLEDB.4.0' cannot be used for distributed queries because the provider is configured to run in single-threaded apartment mode.
    我的sqlserver 是64位的,access是32位的。删除access安装64位的可能可以,但是整个office都要删掉重装太麻烦了。请问下有没有别的方法
      

  11.   

    你的office 是03的?
    升级到office2007或以上版本,用Microsoft.ACE.OLEDB.12.0
      

  12.   

    我的是office2010的
    但是数据库保存的时候是.mdb文件然后我用下面的语句
    select ID,name1 from 
    opendataSource('Microsoft.ACE.OLEDB.12.0','Data Source="C:/Users/Administrator/Desktop/AccessDB/Database1.mdb";')...table1就报下面的错误
    Cannot create an instance of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".
      

  13.   

    EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1
    GO
     
    EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1
    GOselect ID,name1 from 
    opendataSource('Microsoft.ACE.OLEDB.12.0','Data Source="C:/Users/Administrator/Desktop/AccessDB/Database1.mdb";')...table1就会出现和上面那个一样的错误
    OLE DB provider 'Microsoft.ACE.OLEDB.12.0' cannot be used for distributed queries because the provider is configured to run in single-threaded apartment mode.
      

  14.   

    解决了,谢谢大家的帮忙最终的解决方案参考了这里
    http://www.sqlservercentral.com/Forums/Topic1300136-392-1.aspx