【发布时间】:2012-11-24 22:31:58
【问题描述】:
我有一个包含 11,000,000 条记录的 Access 数据库。我想使用 Upsize 工具将此记录传输到 Sqlserver 2008 中的同一个表。此工具可以正确创建数据库和表,但 SQL Server 中的表为空且未传输数据。
【问题讨论】:
标签: database sql-server-2008 ms-access data-transfer
我有一个包含 11,000,000 条记录的 Access 数据库。我想使用 Upsize 工具将此记录传输到 Sqlserver 2008 中的同一个表。此工具可以正确创建数据库和表,但 SQL Server 中的表为空且未传输数据。
【问题讨论】:
标签: database sql-server-2008 ms-access data-transfer
由于您没有提到收到错误消息,请检查新 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 的日期,从而导致失败。我建议您使用 Access 迁移工具,而不是内置工具。它做得更好。
您可以在此处找到此实用程序:
http://www.microsoft.com/en-us/download/details.aspx?id=28763
上述方法往往比内置的升迁工具更好地处理日期和其他阻止数据上传的问题
【讨论】: