一个表在Access中(ODBC做数据源)
一个表在sql server 2005中
两个表这样实现联合查询?

解决方案 »

  1.   

    sql语句跨服务器跨数据库执行
    第一种方法:select * from OPENDATASOURCE('SQLOLEDB','server=服务器ip;uid=sa;pwd=密码').库名.dbo.表名第二种方法:
    先使用联结服务器:
    EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
    exec sp_addlinkedsrvlogin  @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
    GO
    然后你就可以如下:
    select * from 别名.库名.dbo.表名
    insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
    select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
    go如果是Access数据库
     
    select * from OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','my.mdb')...表名 
     Access数据库,别名方法
     
    sp_addlinkedserver 'jcmdb','OLE DB Provider for Jet','Microsoft.Jet.OLEDB.4.0','my.mdb';
    sp_addlinkedsrvlogin 'jcmdb', false, 'sa', 'Admin', NULL
    以上两行只要在查询分析器中执行一次。然后就可以在程序中使用:select * from jcmdb...表名
      
      

  2.   

    select * 
    from MSSQL表
     JOIN OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','my.mdb')...表名 
     ON 条件
      

  3.   

    都用ODBC连了嘛,把Access数据库的内容写到SQL的临时表里 #table1,然后就在sql里面查,查完了把表删掉,最简单了,在SQL里SQL语句也好统一写