轉換 MySQL 資料庫 (MySQLToSQL)
連線到 MySQL、SQL Server 或 Azure SQL,並設定專案和資料對應選項之後,您可以將 MySQL 資料庫物件轉換成 SQL Server 或 Azure SQL Database 物件。
轉換程序
轉換資料庫物件會從 MySQL 取得物件定義、將其轉換為類似的 SQL Server 或 Azure SQL 物件,然後將此資訊載入適用於 DB2 的 SSMA 中繼資料。 此程序不會將資訊載入 SQL Server 的執行個體。 然後,您可以使用 SQL Server 或 SQL Azure 中繼資料總管來檢視物件及其屬性。
在轉換期間,SSMA 會將輸出訊息列印至輸出窗格,並將錯誤訊息列印至 [錯誤清單] 窗格。 使用輸出和錯誤資訊來判斷您是否必須修改 MySQL 資料庫或轉換程序,以取得所需的轉換結果。
設定轉換選項
轉換物件前,請先檢閱 [專案設定] 對話方塊中的專案轉換選項。 您可以使用此對話方塊來設定 SSMA 轉換資料表和索引的方式。 如需其他資訊,請參閱專案設定 (轉換) (MySQLToSQL)。
轉換結果
下表顯示哪些 MySQL 物件已轉換,以及因而產生的 SQL Server 物件:
MySQL 物件 | 產生的 SQL Server 物件 |
---|---|
具有相依物件 (例如索引) 的資料表 | SSMA 會建立具有相依物件的資料表。 資料表會隨所有索引和限制式進行轉換。 索引會轉換成個別 SQL Server 物件。 空間資料類型對應只能在資料表節點層級執行。 如需資料表轉換設定的詳細資訊,請參閱轉換設定 |
函式 | 如果函式可以直接轉換為 Transact-SQL,SSMA 會建立函式。 在某些情況下,函式必須轉換成預存程序。 您可以在專案設定中使用函數轉換來完成此作業。 在此情況下,SSMA 會建立一個預存程序,以及呼叫預存程序的函式。 指定選擇: - 根據專案設定進行轉換 - 轉換成函數 - 轉換成預存程序 如需函數轉換設定的詳細資訊,請參閱轉換設定 |
程序 | 如果程序可以直接轉換為 Transact-SQL,SSMA 會建立一個預存程序。 在某些情況下,必須在自發交易中呼叫預存程序。 在此情況下,SSMA 會建立兩個預存程序:一個會實作程序,另一個則用來呼叫實作預存程序。 |
資料庫轉換 | SSMA for MySQL 不會直接轉換作為 MySQL 物件的資料庫。 MySQL 資料庫會被視為更像結構描述名稱,而且所有實體參數在轉換期間都會遺失。 SSMA for MySQL 會使用將 MySQL 資料庫對應至 SQL Server 結構描述 (MySQLToSQL),來從 MySQL 資料庫將物件對應到適當的 SQL Server 資料庫/結構描述配對。 |
觸發程序轉換 | SSMA 會根據以下規則建立觸發程序: - BEFORE 觸發程序會轉換成 INSTEAD OF T-SQL 觸發程序 - AFTER 觸發程序會轉換成 AFTER T-SQL 觸發程序,且每個資料列有或沒有反覆項目。 |
檢視轉換 | SSMA 會建立具有相依物件的檢視 |
陳述式轉換 | - 每個 SQL 陳述式物件都可能包含單一 MySQL 陳述式 (例如 DDL、DML 和其他類型的陳述式) 或 BEGIN ... END 區塊。 - MultiStatement Conversion:BEGIN ... END 區塊轉換,SQL 陳述式也能包含 BEGIN ... END 區塊,例如在程序、函數或觸發程序定義中包含該區塊。 這些區塊的轉換方式應該與單一 MySQL 陳述式物件轉換的方式相同。 |
轉換 MySQL 資料庫物件
轉換 MySQL 資料庫物件時,必須先選取要轉換的物件,再讓 SSMA 執行轉換。 若要在轉換期間檢視輸出訊息,請在 [檢視] 功能表上選取 [輸出]。
將 MySQL 物件轉換成 SQL Server 或 Azure SQL 語法
在 MySQL 中繼資料總管中,展開 MySQL 伺服器,然後展開 [資料庫]。
選取要轉換的物件:
若要轉換所有結構描述,請選取 [資料庫] 旁的核取方塊。
若要轉換或省略某個資料庫,請選取資料庫名稱旁邊的核取方塊。
若要轉換或省略某個物件類別,請展開結構描述,然後選取或清除類別旁的核取方塊。
若要轉換或省略個別物件,請展開類別資料夾,然後選取或清除物件旁邊的核取方塊。
若要轉換所有選取的物件,請以滑鼠右鍵按一下 [資料庫],然後選取 [轉換結構描述]。
您也能以滑鼠右鍵按一下物件或其父資料夾,然後選取 [轉換結構描述],以轉換個別物件或物件類別。
檢視轉換問題
某些 MySQL 物件可能無法轉換。 您可以檢視摘要轉換報表來判斷轉換成功率。
檢視摘要報告
在 MySQL 中繼資料總管中,選取 [資料庫]。
在右側窗格中,選取 [報告] 索引標籤。
此報告會顯示已評估或已轉換之所有資料庫物件的摘要評估報告。 您也可以檢視個別物件的摘要報告:
若要檢視個別結構描述的報表,請在 MySQL 中繼資料總管中選取資料庫。
若要檢視個別物件的報表,請在 MySQL 中繼資料總管中選取物件。 發生轉換問題的物件會帶有紅色錯誤圖示。
針對轉換失敗的物件,您可以檢視導致轉換失敗的語法。
檢視個別轉換問題
在 MySQL 中繼資料總管中,展開 [資料庫]。
展開顯示紅色錯誤圖示的資料庫。
在資料庫下,展開具有紅色錯誤圖示的資料夾。
選取具有紅色錯誤圖示的物件。
在右側窗格中,選取 [報告] 索引標籤。
報告索引標籤頂端有一個下拉式清單。 如果清單顯示 [統計資料],請將選取項目變更為 [來源]。
SSMA 會顯示原始程式碼,程式碼正上方有數個按鈕。
選取下一個問題按鈕。 這是紅色錯誤圖示,具有指向右側的箭頭。
SSMA 會反白顯示在目前物件中找到的第一個有問題的原始程式碼。
對於無法轉換的每個項目,您必須決定要對該物件執行的動作:
您可以修改 MySQL 資料庫中的物件,以移除或修改有問題的程式碼。 若要將更新的程式碼載入 SSMA,您必須更新中繼資料。 如需詳細資訊,請參閱連線到 MySQL (MySQLToSQL)
您可以將物件排除在移轉作業之外。 在 SQL Server 或 SQL Azure 中繼資料總管和 MySQL 中繼資料總管中,清除項目旁的核取方塊,再將物件載入 SQL Server 或 Azure SQL,然後從 MySQL 移轉資料。
另請參閱
下一步
- 移轉流程的下一個步驟是將已轉換的資料庫物件載入 SQL Server (MySQLToSQL)