将Access 2016应用程序的数据从Access迁移到SQL Server 2016

时间:2018-02-06 21:08:16

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

我有一个看似直接的项目,出乎意料地面临许多障碍。

我需要将现有Access 2016应用程序的后端数据从Access移动到SQL Server 2016。

我面临的挑战是:

  1. 迁移Access到SQL Server的最简单和推荐的方法是使用Microsoft SQL Server Assistant(SSMA)进行访问。问题是我的Access是32位即点即用版。因为目标是SQL Server 2016,所以我应该使用SSMA for Access v.7.6.0,它只能在64位中使用。要使用它,我需要安装无法安装的64位Access Runtime,因为根据错误消息“Windows安装程序和即点即用版Office程序不能相处”。早期版本的SSMA for Access 6.0以32位连接并连接到Access,但无法连接到SQL Server 2016,因为2014是它支持的最新版本。忽略警告并强制连接到SQL Server 2016会导致错误收集数据...因此,我无法使用SSMA。

  2. 我能够使用SSIS将数据从Access迁移到SQL Server。现在,我的挑战是将现有的Access表重新指向其SQL Server副本。我正在尝试链接,但似乎现有的Access表只能链接到文件系统数据源。如果我尝试从SQL Server端建立链接,我只能创建新的链接表,这对我没有太大帮助,因为我试图避免应用程序中的大量更改。可能是我在这里错过了一些简单的东西吗?

  3. 某些Access表具有附件数据类型列。 SSIS无法正确处理附件数据类型。据我所知,SSMA也不是。因此,当我将Access表链接到SQL Server时,我可能需要编写一些代码来将附件从备份Access数据库移动到SQL Server。还有其他更容易的解决方案吗?

  4. 非常感谢任何建议。

1 个答案:

答案 0 :(得分:0)

  1. 这是对的。这是一团糟。您可以使用另一台(虚拟)计算机进行干净的64位Access安装。
  2. 删除前端中的当前表并链接SQL Server表。它们可能会被赋予“dbo_”前缀,您可以通过重命名表来删除它们。
  3. 这是重写。 SQL Server不支持附件字段。其他奇特的功能,如查找字段和多值字段也没有。