添加链接服务器,或是使用openrowset()函数

解决方案 »

  1.   

    --SQL Sever 2005 中有同义词的概念.
    --建立一个同义词即可!如,名为 Server1 的服务器上有 Adventure Works 的 Employee 表。若要从另一台服务器 Server2 引用此表,客户端应用程序必须使用由四个部分构成的名称 Server1.AdventureWorks.Person.Employee。另外,如果更改了表的位置(例如,更改到另一台服务器上),那么需要修改客户端应用程序以反映所做的更改。
      

  2.   

    Person 指的是什么,登录数据库的用户名吗
      

  3.   

    再上前面加上服务器名: 服务器名.库名.dbo.表名
    我是这样用的
      

  4.   

    先添加链接数据库,再上前面加上服务器名: 服务器名.库名.dbo.表名
      

  5.   

    --为远程对象创建同义词
    --创建链接服务器
    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 同以词
      

  6.   

    OPENQUERY
    在给定的链接服务器(一个 OLE DB 数据源)上执行指定的直接传递查询。可以在查询的 FROM 子句中像引用表名那样引用 OPENQUERY 函数。依据 OLE DB 提供程序的能力,还可以将 OPENQUERY 函数引用为 INSERT、UPDATE 或 DELETE 语句的目标表。尽管查询可能返回多个结果集,但是 OPENQUERY 只返回第一个。语法
    OPENQUERY ( linked_server , 'query' ) 参数
    linked_server一个标识符,表示链接的服务器的名称。'query'在链接的服务器中执行的查询字符串。注释
    OPENQUERY 不接受参数变量。示例
    下面的示例利用用于 Oracle 的 Microsoft OLE DB 提供程序针对 Oracle 数据库创建一个名为 OracleSvr 链接的服务器。然后,该示例对此链接的服务器使用一个直接传递查询。说明  本示例假定已经创建了一个名为 ORCLDB 的 Oracle 数据库别名。
    EXEC sp_addlinkedserver 'OracleSvr', 
       'Oracle 7.3', 
       'MSDAORA', 
       'ORCLDB'
    GO
    SELECT *
    FROM OPENQUERY(OracleSvr, 'SELECT name, id FROM joe.titles') 
    GO