Sql-Server
SSMA for Access - 遷移助手嚮導在連結表中失敗
將 SQL Server 遷移助手與遷移嚮導一起用於 Access 時,將 Access (2016) 數據庫轉換為 SQL Server Express (2017) 一切順利,直到我進入連結表步驟。此處出現 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
我已經嘗試過使用和不使用相同的錯誤加密連接,所以它看起來不像是 SSL 錯誤。
我安裝了四個 SQL Server ODBC 驅動程序:
- 適用於 SQL Server 的 ODBC 驅動程序 11
- 適用於 SQL Server 的 ODBC 驅動程序 13
- SQL 伺服器
- SQL Server 本地客戶端 11.0
如果我使用 ODBC 數據源管理器創建連接,我可以使用 SQL Server 驅動程序產生相同的錯誤。其他三個工作正常。因此,似乎 SSMA 正在使用SQL Server驅動程序(四個驅動程序中最舊的)而不是SQL Server Native Client,這應該是 SSMA 的依賴項。
通過執行以下操作,我能夠解決該問題:
- 允許遷移助手完成(連結轉換錶失敗)
- 手動將 MySQL 連結表添加到 Access
- 打開Access,選擇外部數據->新建數據源->從其他源->ODBC數據庫
- 通過創建連結表選擇連結到數據源
- 選擇您的 ODBC 驅動程序文件或源
- 輸入憑據
- 選擇要連結的表
- 刪除 Access 表並重命名 MySQL 表
- 從表列表中,右鍵點擊第一個訪問表並刪除
- 右鍵點擊對應的 MySQL 表並重命名以完全匹配已刪除的 Access 表
- 對要重新映射的每個表重複
如果您重命名每個 MySQL 表以匹配已刪除的 Access 表,則所有查詢都應該有效。