【问题标题】:Data migration Access to SQL Server数据迁移访问 SQL Server
【发布时间】:2014-08-21 07:17:41
【问题描述】:

我即将将数据从旧数据库(Access 2007,大约有 30 个表)迁移到新的 SQL Server 2008 数据库结构,以及附加信息 - 大约 80 个表。到目前为止,我已经阅读了一些关于它的内容,但这对我来说是一个全新的领域。所以才提出这个问题。


关于我想要实现的目标的更多细节:

有一个旧的 Access 数据库,其 Access 接口用作程序。大约 10 年前,该数据库开始很小,只有几张表,后来变得越来越大,此时大约有 30 个 LARGE 表。这个旧数据库面临的问题是大型数据集(大表/一张表中有许多列)。这不仅会降低查询性能,还会限制要收集的数据结构和信息。

因此,设计了一个新的数据库结构。这是一个完全标准化的设计,有 80 多个表。事实上,旧数据是相同的,但分散在更多的表(比如说对象)中,其中很少有这些表具有关于该对象的一些额外信息,这些信息以前没有收集到。当然,将来这些数据也必须被记录下来,因此将在这个数据库上构建一个新的应用程序(前端)。


是否有人对文献、良好工具或其他最佳实践有任何经验或知识,我可以使用这些经验或知识将旧数据库中的旧 Access 数据转移到新的、大型和规范化的设计中?

此时我正在深入研究 SSIS 和 SSMA,但也许有人可以为我指明一个满足我特定需求的好方向。

非常感谢您。

【问题讨论】:

    标签: sql-server ms-access data-migration


    【解决方案1】:

    我建议使用 SSIS Package。在 SSIS 中,您可以拥有每个源(例如 Access)和每个目标(例如 SQL Server)。它使用批量插入并且具有良好的性能。

    【讨论】:

    • 感谢您的快速响应!在我们发言时遵循 Microsoft 的 SSIS 教程
    • 接受了您的回答。先用SSMA转成MSSQL,方便使用。由于我在 SSIS 中工作了数周,因此对于这些操作来说,它是一个很棒的(并且可能是最好的)工具 - 我花了一段时间才发现集成服务并非随所有版本一起提供。
    【解决方案2】:

    您可能需要解决的另一件事是错误 3622,详细信息如下: http://support.microsoft.com/kb/190620

    基本上,您可能需要检查您的代码并将选项 dbSeeChanges 添加到您的 OpenRecordset 选项和执行状态

    CurrentDb.Execute sSQL, dbFailOnError
    Set oRst = CurrentDb.OpenRecordset(sSQL, dbOpenDynaset)
    Set oRst = CurrentDb.OpenRecordset(sSQL, dbOpenDynaset, dbFailOnError)
    

    CurrentDb.Execute sSQL, dbFailOnError + dbSeeChanges
    Set oRst = CurrentDb.OpenRecordset(sSQL, dbOpenDynaset, dbSeeChanges)
    Set oRst = CurrentDb.OpenRecordset(sSQL, dbOpenDynaset, dbFailOnError + dbSeeChanges)
    

    【讨论】:

      猜你喜欢
      • 2019-09-25
      • 2017-11-16
      • 1970-01-01
      • 2011-02-05
      • 2012-08-22
      • 1970-01-01
      • 1970-01-01
      • 2018-06-09
      • 2013-02-08
      相关资源
      最近更新 更多