比如,我们在一个数据库中可以多表查询操作,如:
string sql = "Select table1.user_name, table2.department_name from table1 inner join table2 on table1.user_departmentID = table2.department_ID";如果table1和table2分别存放在两个sql server 2000的数据表中,我们还能想上面那样操作多个表吗?最好给点实际的代码学学,谢谢!

解决方案 »

  1.   

    sql server中分布式查询(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin))
    --建立连接服务器 
    EXEC sp_addlinkedserver 
    --要创建的链接服务器名称 
    'ai_mssql',             
    --产品名称               
    'ms',     
    --OLE DB 字符 
    'SQLOLEDB', 
    --数据源 
    '218.204.111.111,3342' 
    GO
    --创建链接服务器上远程登录之间的映射 
    EXEC sp_addlinkedsrvlogin 
    'ai_mssql', 
    'false', 
    NULL, 
    --远程服务器的登陆用户名 
    'zhangzhe', 
    --远程服务器的登陆密码 
    'fish2231' 
    go
    --查询数据 
    select * from ai_mssql.pubs.dbo.jobs 
    go
    --还有一个更简单的办法 
    --这种方式在链接服务器建立后,它是默认开放RPC的--建立连接服务器 
    EXEC sp_addlinkedserver 
    --要创建的链接服务器名称 
    --这里就用数据源作名称 
    '218.204.111.111,3342', 
    'SQL Server' 
    GO
    --创建链接服务器上远程登录之间的映射 
    EXEC sp_addlinkedsrvlogin 
    '218.204.111.111,3342', 
    'false', 
    NULL, 
    --远程服务器的登陆用户名 
    'zhangzhe', 
    --远程服务器的登陆密码 
    'fish2231' 
    go
    --查询数据 
    select * from [218.204.253.131,3342].pubs.dbo.jobs 
    go
    还有其他数据库链接方式,具体请看:http://hi.baidu.com/grrc/blog/item/8cee3238346c62f4b211c78c.html
      

  2.   


      exec   sp_addlinkedserver     'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'   
      exec   sp_addlinkedsrvlogin   'srv_lnk','false',null,'用户名','密码'   
      GO   
      USE   本地数据库   
      CREATE   SYNONYM   同以词   FOR   srv_lnk.远程数据库.dbo.远程表;   
      GO   
      select   *   from   同义词  
      

  3.   

    楼主知道完整的表命名吗?
    [机器名].数据库名.用户名(通常为dbo).表名 
      

  4.   

    4楼能否给出个多库多表的实例sql语句看看?