【问题标题】:Access Upsize to Sqlserver not transfer dataAccess Upsize 到 Sql Server 不传输数据
【发布时间】:2012-11-24 22:31:58
【问题描述】:

我有一个包含 11,000,000 条记录的 Access 数据库。我想使用 Upsize 工具将此记录传输到 Sqlserver 2008 中的同一个表。此工具可以正确创建数据库和表,但 SQL Server 中的表为空且未传输数据。

【问题讨论】:

    标签: database sql-server-2008 ms-access data-transfer


    【解决方案1】:

    由于您没有提到收到错误消息,请检查新 SQL Server 表中的字段类型以确认它们与 Access 对应项兼容。

    如果看起来正常,启动 Access 并创建一个指向 SQL Server 表的 ODBC 链接。然后创建一个 Access“追加查询”,将 Access 表中的数据添加到 SQL Server 表中。

    INSERT INTO remote_table (field1, field2, field3)
    SELECT field1, field2, field3
    FROM local_table
    WHERE date_field >= #2012-01-01# AND date_field < #2012-02-01#;
    

    注意,我设想了一个 WHERE 子句,它将行数限制为 1100 万行中相当小的一个子集。根据您的情况进行调整。

    如果 INSERT 成功,请使用不同的 WHERE 条件重复此操作,以将数据块附加到 SQL Server,直到将其全部传输。

    如果失败,希望您会收到一条错误消息,说明原因。

    【讨论】:

    • 如何“创建指向 SQL Server 表的 ODBC 链接”和“追加查询”?
    • 为您的 SQL Server 数据库创建一个 DSN。在 Access 2007 中,选择“外部数据”,从“更多”下拉列表中选择“ODBC 数据库”。然后在“获取外部数据”对话框中选择“链接”单选按钮,在“选择数据源”对话框中选择您的 DSN,最后从“导入对象”对话框中选择您的 SQL Server 表。
    • 对于追加查询,从使用本地表作为数据源的新 Access 查询开始。选择您要上传到服务器的字段,然后将查询类型更改为“追加”,然后选择您的链接表作为目标。
    【解决方案2】:

    正如这里所指出的,在大多数情况下,这是一个错误的日期,或者只是一个超出 SQL Server 的日期,从而导致失败。我建议您使用 Access 迁移工具,而不是内置工具。它做得更好。

    您可以在此处找到此实用程序:

    http://www.microsoft.com/en-us/download/details.aspx?id=28763

    上述方法往往比内置的升迁工具更好地处理日期和其他阻止数据上传的问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-06
      • 1970-01-01
      相关资源
      最近更新 更多