轉到這還是沒人理呀,如下是我在分析器裏調試成功的例子,移到存儲過程總是出錯,大家幫幫
exec sp_addlinkedserver  'srv_lnk','','SQLOLEDB','lym','hina'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'sa','123'
GOselect * from srv_lnk.hina.dbo.INV1GO
exec sp_dropserver 'srv_lnk','droplogins'

解决方案 »

  1.   

    参考:
    OPENROWSET
    包含访问 OLE DB 数据源中的远程数据所需的全部连接信息。当访问链接服务器中的表时,这种方法是一种替代方法,并且是一种使用 OLE DB 连接并访问远程数据的一次性的、特殊的方法。可以在查询的 FROM 子句中像引用表名那样引用 OPENROWSET 函数。依据 OLE DB 提供程序的能力,还可以将 OPENROWSET 函数引用为 INSERT、UPDATE 或 DELETE 语句的目标表。尽管查询可能返回多个结果集,然而 OPENROWSET 只返回第一个。语法
    OPENROWSET ( 'provider_name'
        , { 'datasource' ; 'user_id' ; 'password'
            | 'provider_string' }
        , { [ catalog.] [ schema.] object
            | 'query' } 
        ) 示例
    A. 将 OPENROWSET 与 SELECT 语句及用于 SQL Server 的 Microsoft OLE DB 提供程序一起使用
    下面的示例使用用于 SQL Server 的 Microsoft OLE DB 提供程序访问 pubs 数据库中的 authors 表,该数据库在一个名为 seattle1 的远程服务器上。从 datasource、user_id 及 password 中初始化提供程序,并且使用 SELECT 语句定义返回的行集。USE pubs
    GO
    SELECT a.*
    FROM OPENROWSET('SQLOLEDB','seattle1';'sa';'MyPass',
       'SELECT * FROM pubs.dbo.authors ORDER BY au_lname, au_fname') AS a
    GOB. 将 OPENROWSET 与对象及用于 ODBC 的 OLE DB 提供程序一起使用
    下面的示例使用用于 ODBC 的 OLE DB 提供程序以及 SQL Server ODBC 驱动程序访问 pubs 数据库中的 authors 表,该数据库在一个名为 seattle1 的远程服务器中。提供程序用在 ODBC 提供程序所用的 ODBC 语法中指定的 provider_string 进行初始化,定义返回的行集时使用 catalog.schema.object 语法。USE pubs
    GO
    SELECT a.*
    FROM OPENROWSET('MSDASQL',
       'DRIVER={SQL Server};SERVER=seattle1;UID=sa;PWD=MyPass',
       pubs.dbo.authors) AS a
    ORDER BY a.au_lname, a.au_fname
    GOC. 使用用于 Jet 的 Microsoft OLE DB 提供程序
    下面的示例通过用于 Jet 的 Microsoft OLE DB 提供程序访问 Microsoft Access Northwind 数据库中的 orders 表。说明  下面的示例假定已经安装了 Access。
    USE pubs
    GO
    SELECT a.*
    FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
       'c:\MSOffice\Access\Samples\northwind.mdb';'admin';'mypwd', Orders) 
       AS a
    GOD. 使用 OPENROWSET 和 INNER JOIN 中的另一个表
    下面的示例从本地 SQL Server Northwind 数据库的 customers 表中,以及存储在相同计算机上 Access Northwind 数据库的 orders 表中选择所有数据说明  下面的示例假定已经安装了 Access。
    USE pubs
    GO
    SELECT c.*, o.*
    FROM Northwind.dbo.Customers AS c INNER JOIN 
       OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
       'c:\MSOffice\Access\Samples\northwind.mdb';'admin';'mypwd', Orders) 
       AS o
       ON c.CustomerID = o.CustomerID 
    GO
      

  2.   

    TO dh20156(风之石)老大你問非所答咧, 你說的方法我也知道,現在我只是想把我的如上分析器裏運行正常的例子,如何移到存儲過程裏用就OK了, 在這裏找了N久,也在BAIDU上找了N久都沒發現
      

  3.   

    SORRY哦,没有测试条件,恐怕帮不到你了! -_-!!!
      

  4.   

    --连接数据库的操作不要放在数据库中,因只一次建立链接以后都可以不用链接.
    即下面的语句在查询分析器中完成,然后其它语句放入存储过程来完成.
    exec sp_addlinkedserver  'srv_lnk','','SQLOLEDB','lym','hina'
    exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'sa','123'
    GO
      

  5.   

    如果客户端是用程序连接,楼主倒是可以直接将存储过程创建在服务器上
    在客户端通过程序调用服务器上的存储过程(用ADO.NET)
      

  6.   

    To wzh1215(懒猫) 你的說法就怪了,如是客戶在用,你這樣肯定說不過去啦,還望指點最終解決方法