SSMA for Access - 迁移助手向导在链接表中失败

Chr*_*ves 6 ms-access sql-server ssma sql-server-2017

将 SQL Server 迁移助手与迁移向导结合使用时,将 Access (2016) 数据库转换为 SQL Server Express (2017) 一切顺利,直到我进入链接表步骤。此处出现 SQL Server 连接对话框:

sql server连接对话

我输入用于创建表的相同凭据。我的理解是,这个对话似乎允许使用不同的 SQL Server 登录和 Access,所以这里可能没有什么特别之处。但后来我收到以下错误:

错误

Connection failed:
SQLState: '01000'
SQL Server Error: 772
[Microsoft][ODBC SQL Server Driver]
[DBNETLIB]ConnectionOpen (SECDoClientHandshake()).
Connection failed:
SQLState: '08001'
SQL Server Error: 18
[Microsoft][ODBC SQL Server Driver]
[DBNETLIB]SSL Security error
Run Code Online (Sandbox Code Playgroud)

我已经尝试过使用和不使用相同错误加密连接,所以它看起来不像是 SSL 错误。

我安装了四个 SQL Server ODBC 驱动程序:

  • 用于 SQL Server 的 ODBC 驱动程序 11
  • 用于 SQL Server 的 ODBC 驱动程序 13
  • 数据库服务器
  • SQL Server 本机客户端 11.0

如果我使用 ODBC 数据源管理器创建连接,我可以使用 SQL Server 驱动程序产生相同的错误。其他三个工作正常。所以似乎 SSMA 正在使用SQL Server驱动程序(四个中最旧的)而不是SQL Server Native Client,这应该是 SSMA 的依赖项。

Chr*_*ves 3

我能够通过执行以下操作来解决该问题:

  1. 允许迁移助手完成(链接转换表失败)
  2. 手动将 MySQL 链接表添加到 Access
  3. 打开Access,选择外部数据->新建数据源->来自其他源->ODBC数据库
  4. 选择通过创建链接表链接到数据源
  5. 选择您的 ODBC 驱动程序文件或源
  6. 输入凭据
  7. 选择您要链接的表
  8. 删除 Access 表并重命名 MySQL 表
  9. 从表列表中,右键单击第一个 Access 表并删除
  10. 右键单击相应的 MySQL 表并重命名为与已删除的 Access 表完全匹配
  11. 对要重新映射的每个表重复此操作

如果您重命名每个 MySQL 表以匹配已删除的 Access 表,则所有查询都应该有效。