【问题标题】:From SQL Server how do I read from an MS Access database to UPDATE data in one or more table columns?如何从 SQL Server 读取 MS Access 数据库以更新一个或多个表列中的数据?
【发布时间】:2012-01-29 18:07:23
【问题描述】:

我的 SQL Server 数据库表中有一个列需要使用 MS Access 文件中的数据进行更新。如何查询 MS Access 数据以执行此类更新?

导入向导似乎只处理插入新数据而不是更新现有数据?还是我误解了如何使用向导?

【问题讨论】:

  • 这不是微不足道的;您必须在 MSACCESS 数据库和 SQL Server 之间建立连接,并运行一些 UPDATE 查询。
  • 我认为您的出发点是错误的。我会在 Access 中编写代码来执行更新。您可能需要从 SQL Server 检索数据,然后执行比较以确定应更新的记录。或者,查看 SSIS(这里是一个标签)。

标签: sql-server ms-access


【解决方案1】:

听起来您想从 SQL Server 端运行该操作......将 Access 数据“拉”到 SQL Server 中。如果是这样,您可以将 Access 文件设置为 SQL Server 中的链接服务器。我没有这样做,但读过其他人有的案例。我从 SQLServerPedia 的 How can I link a SQL Server database to MS Access using link tables in MS Access? 复制了这些步骤。

1) Open EM.
2) Goto the Server to which you want to add it as linked server.
3) Then goto security > Linked Servers section from console tree.
4) Right click on the Client area. Then New Linked Server.
5) Give a name and Specify Microsoft Jet 4.0 as Provider string.
6) Provide the location of the MDB file.
7) Click OK.

或者,您可以从 Access 端运行操作,并将数据推送到 SQL Server。如果这对您有用,请使用 Olivier 的说明设置 ODBC 链接的 SQL Server 表。或者您在不创建 DSN 的情况下执行此操作:Using DSN-Less Connections

无论您如何链​​接表,您在 Access 中运行的 UPDATE 语句都可能很简单:

UPDATE
    linked_table AS dest
    INNER JOIN local_table AS src
    ON dest.pkey_field = src.pkey_field
SET dest.access_data = src.access_data
WHERE
    dest.access_data <> src.access_data
    OR dest.access_data Is Null;

【讨论】:

    【解决方案2】:

    首先在 Windows 中设置一个 ODBC DSN。打开控制面板 > 管理工具 > 数据源 (ODBC)。请注意,在 64 位 Windows 上,这可能会打开 64 位管理员。但是,如果您有 32 位访问权限,则需要 32 位管理员 (%windir%\SysWOW64\odbcad32.exe)。

    然后您可以将 SQL-Server 表链接到您的访问数据库。在 Link Tables 对话框中,选择“ODBC Databases()”作为文件类型。

    然后您可以像访问表一样查询链接的 SQL Server 表。

    Configure Microsoft Access Linked Tables with a SQL Server Database

    【讨论】:

    • 嗯...在 64 位 Windows 上,我认为 %windir%\system32\odbcad32.exe 是 64 位版本,而 %windir%\SysWoW64\odbcad32.exe 应该是 32 位版本.
    • 对于这个领域的新手来说,“DSN”是一个“数据源名称”。它是“应用程序用来请求连接到 ODBC 数据源的名称”。在这里阅读更多:support.microsoft.com/en-us/help/966849/…
    猜你喜欢
    • 2018-07-26
    • 1970-01-01
    • 1970-01-01
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多