【问题标题】:SQL Server 2005 query multiple Access databases?SQL Server 2005 查询多个Access 数据库?
【发布时间】:2010-01-28 20:40:45
【问题描述】:

有没有办法让 SQL Server 2005 在一条 SQL 语句中查询 3 个或更多单独的 Access 数据库(每个数据库返回 1 条记录)?

【问题讨论】:

    标签: sql sql-server sql-server-2005 tsql ms-access


    【解决方案1】:

    可以,但需要您为每个 Access 数据库创建一个链接服务器实例。见here for details about creating Linked Server instances on SQL Server 2005 to MS Access

    一旦你有了这些,你就可以查询 SQL Server,它会在你的 SQL Server 查询中指定表时,根据使用链接服务器实例表示法将查询传递给相应的 Access 数据库。

    【讨论】:

      【解决方案2】:

      您想要的是每个 Access 数据库的 Linked Server

      【讨论】:

        【解决方案3】:

        请注意,在 SQL 2005 64 位中,您不会很快通过链接服务器查询当前版本的 Access 或 Excel。

        【讨论】:

        • 为什么会这样? 64 位 SQL Server 能否不使用 32 位组件,例如 Jet/ACE?请注意,Access 2010 将有一个 64 位版本,因此,有一个 64 位版本的 ACE 处于测试阶段。它也可以单独下载(当然,它仍处于测试阶段)。
        • @David-W-Fenton:正确,虽然我想说 32 位组件不能提供 64 位功能。 “Microsoft Jet”在 64 位服务器上只是不可用的选项。很高兴听到有关 Access 2010 的 64 位版本的消息,但在我看到它工作之前我会保持怀疑。
        • 其他人用过 64 位 ACE 的测试版,似乎效果不错。是的,它是一个测试版,但您应该试一试,因为它可能会解决您遇到的问题。
        • @David-W-Fenton:我们的组织仍在使用 Access 2003。64 位 ACE 驱动程序可以使用吗?如果没有,不去。 :)
        • 我不确定我是否理解。您查询的数据表采用 A2003 格式这一事实并不妨碍使用 ACE 来处理这些数据库,因为 A2003 是 ACE 的本机格式。 Jet/ACE 一直是向后兼容的,即后来的 Jet 引擎可以读/写早期版本的数据文件。所以 ACE 处理 Jet 4.0 数据文件应该没有问题。
        【解决方案4】:

        是的,使用sp_addlinkedserver 将它们设置为链接服务器。

        【讨论】:

          猜你喜欢
          • 2011-01-13
          • 1970-01-01
          • 2010-10-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-07
          • 1970-01-01
          相关资源
          最近更新 更多