首先,如果有人问过这个问题或者这是一个微不足道的问题,我深表歉意。
但是,是否可以通过 Microsoft Access 连接到两个外部 SQL 数据库?
作为背景,一个是我们的 CRM,一个是我们的电子邮件管理系统。两者是完全不同的数据库。而且,驻留在不同的物理和虚拟服务器中。
我们的目标是能够深入了解我们的电子邮件营销工作,因为它与我们 CRM 中捕获的客户活动相关。
我们目前使用 ODBC 连接从我们的 CRM 数据库中读取数据。
首先,如果有人问过这个问题或者这是一个微不足道的问题,我深表歉意。
但是,是否可以通过 Microsoft Access 连接到两个外部 SQL 数据库?
作为背景,一个是我们的 CRM,一个是我们的电子邮件管理系统。两者是完全不同的数据库。而且,驻留在不同的物理和虚拟服务器中。
我们的目标是能够深入了解我们的电子邮件营销工作,因为它与我们 CRM 中捕获的客户活动相关。
我们目前使用 ODBC 连接从我们的 CRM 数据库中读取数据。
真的,我们需要更多信息,但基本上是的,这是可能的。您需要做的就是链接到 SQL 数据库中的表,然后使用 JOIN 对链接的表运行查询。此页面将告诉您如何链接到 SQL 表: http: //office.microsoft.com/en-au/access-help/import-or-link-to-sql-server-data-HA010200494.aspx
可以在 MS Access 中执行此操作(如 Makita 的回答中所述)。
但是您不会以这种方式获得最大性能,因为您的机器上的 MS Access 会产生一定的开销(与数据库服务器相比相对较慢,并且网络连接可能比数据库服务器慢),从网络上的两个不同的数据库服务器。
由于您使用sql-server标记了您的问题,因此使用 SQL Server 的功能还有另一种可能的解决方案:链接服务器。
您可以在 SQL Server A 中创建链接到 SQL Server B的链接服务器。
(有关如何执行此操作的更多信息,请参阅上面的链接)
然后,您可以使用以下语法从 SQL Server A (甚至从两个服务器连接表)查询 SQL Server B 上的表:
-- execute this on Server A
use DatabaseA
select *
from TableA a
inner join ServerB.DatabaseB.dbo.TableB b on a.ID = b.ID
(此代码假定TableA
是 中的一个表DatabaseA
,它是 on ServerA
,依此类推)
这将比链接 MS Access 中的表快得多(需要提取的数据越多,速度越快),因为您使用的是数据库服务器的卓越 CPU 能力和网络连接。