表a在服务器1上,表b,表c在服务器2上,
要求:写sql语句或者存储过程...,建立a,b,c三个表联表查询
不能用链接服务器,有什么办法,小女头要炸了

解决方案 »

  1.   

    --直接用openrowset的查询示例
    select * from openrowset('SQLOLEDB'
    ,'sql服务器名';'用户名';'密码'
    ,数据库名.dbo.表名)
      

  2.   

    TRY:select
        * 
    from
        a, 
        openrowset('SQLOLEDB','服务器2';'用户名';'密码',数据库名.dbo.表b) b,
        openrowset('SQLOLEDB','服务器2';'用户名';'密码',数据库名.dbo.表c) c
    where
        ...
      

  3.   

    --创建链接服务器
    exec sp_addlinkedserver  'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
    exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
    go--查询示例
    在服务器1创建
    create proc test_p
    as
    select a.*,b.*,c.* --定义显示列
    from a,
    srv_lnk.数据库名.dbo.表b as b,
    srv_lnk.数据库名.dbo.表c as c,
    where ........条件
    如果存储过程在服务器2创建同上