【问题标题】:Is it possible to query a linked server of a remote server? / Acces FoxPro data from SQL Server x64是否可以查询远程服务器的链接服务器? / 从 SQL Server x64 访问 FoxPro 数据
【发布时间】:2012-05-10 11:12:33
【问题描述】:

场景:

  • SQL Server 2005 x64(默认实例)
  • Fox Pro .dbf 上的数据。仅提供 32 位驱动程序(无 x64 驱动程序)

我需要从默认 SQL Server 实例访问 FoxPro 数据。我曾经使用在 SQL Server 上创建的链接服务器来执行此操作,但这在 x64 实例上不再可行(驱动程序兼容性)。

所以,我安装了一个新的 32 位 SQL Server 实例(简称 SS32),并在这个新实例上创建了链接服务器,以使用现有驱动程序访问 .dbf 数据。

在这个服务器中,我可以像这样查询 .dfb 数据:

  • select * from LinkedServerName...DbfTableName 效果很好

但我仍然需要从默认实例访问它。

所以,这就是我所拥有的

  • SQL Server x64 默认实例
  • 带有链接服务器以访问 foxpro 数据的 SQL Server 32 (SS32) 实例

有没有办法从默认实例中查询SS32中的链接服务器?你知道任何可能的替代方案吗?

【问题讨论】:

    标签: sql sql-server ms-access foxpro visual-foxpro


    【解决方案1】:

    在 x64 实例中,您可以使用 OPENQUERY 在链接服务器上运行查询:

    SELECT *
      FROM OPENQUERY(x86LinkedServer, 'select *
                                         from LinkedServerName...DbfTableName')
    

    还有this blog post 是关于(基本上)您的问题的解决方法:从 64 位实例查询 32 位数据源。

    【讨论】:

    • 非常感谢!你是对的,但你交换了参数。这就像一个魅力:select * from openquery([(local)\ss32],'select * from LinkedServername...DbfTableName')。请纠正你的答案,这样我就可以说它是正确的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-04
    • 1970-01-01
    相关资源
    最近更新 更多