共用方式為


轉換 MySQL 資料庫 (MySQLToSQL)

聯機到 MySQL、連線到 SQL Server 或 Azure SQL,以及設定專案和數據對應選項之後,您可以使用適用於 MySQL 的 SQL Server 移轉小幫手 (SSMA) 將 MySQL 資料庫物件轉換成 SQL Server 或 Azure SQL 資料庫 物件。

轉換程序

轉換資料庫物件會從 MySQL 取得物件定義、將其轉換為類似的 SQL Server 或 Azure SQL 物件,然後將此資訊載入適用於 DB2 的 SSMA 中繼資料。 此程序不會將資訊載入 SQL Server 的執行個體。 然後,您可以使用 SQL Server 或 SQL Azure 中繼資料總管來檢視物件及其屬性。

在轉換期間,SSMA 會將輸出訊息列印至輸出窗格,並將錯誤訊息列印至 [錯誤清單] 窗格。 使用輸出和錯誤資訊來判斷您是否必須修改 MySQL 資料庫或轉換程序,以取得所需的轉換結果。

設定轉換選項

轉換物件前,請先檢閱 [專案設定] 對話方塊中的專案轉換選項。 您可以使用此對話方塊來設定 SSMA 轉換資料表和索引的方式。 如需詳細資訊,請參閱專案設定 (轉換)

轉換結果

下表顯示哪些 MySQL 物件已轉換,以及因而產生的 SQL Server 物件:

MySQL 物件 產生的 SQL Server 物件
具有相依物件 (例如索引) 的資料表 SSMA 會建立具有相依物件的資料表。 資料表會隨所有索引和限制式進行轉換。 索引會轉換成個別 SQL Server 物件。

空間資料類型對應只能在資料表節點層級執行。

如需資料表轉換設定的詳細資訊,請參閱轉換設定
函式 如果函式可以直接轉換為 Transact-SQL,SSMA 會建立函式。 在某些情況下,函式必須轉換成預存程序。 您可以在專案設定中使用函數轉換來完成此作業。 在此情況下,SSMA 會建立一個預存程序,以及呼叫預存程序的函式。

指定選擇:

- 根據專案設定進行轉換
- 轉換成函數

- 轉換成預存程序

如需函數轉換設定的詳細資訊,請參閱轉換設定
程序 如果程序可以直接轉換為 Transact-SQL,SSMA 會建立一個預存程序。 在某些情況下,必須在自發交易中呼叫預存程式。 在此情況下,SSMA 會建立兩個預存程序:一個會實作程序,另一個則用來呼叫實作預存程序。
資料庫轉換 作為 MySQL 物件的資料庫不會由 SSMA for MySQL 直接轉換。 MySQL 資料庫會被視為更像結構描述名稱,而且所有實體參數在轉換期間都會遺失。 SSMA for MySQL 會使用將 My SQL 資料庫 s 對應至 SQL Server 架構,將來自 MySQL 資料庫的物件對應至適當的 SQL Server 資料庫/架構組。
觸發程序轉換 SSMA 會根據以下規則建立觸發程序:

- BEFORE 觸發程序會轉換成 INSTEAD OF T-SQL 觸發程序

- AFTER 觸發程序會轉換成 AFTER T-SQL 觸發程序,且每個資料列有或沒有反覆項目。
檢視轉換 SSMA 會建立具有相依物件的檢視
陳述式轉換 - 每個 SQL 語句物件可能包含單一 MySQL 語句(例如 DDL、DML 和其他類型的語句)或 BEGIN ...END 區塊。

- 在 MultiStatement 轉換:BEGIN 中...END 區塊轉換,SQL 語句也可以包含 BEGIN ...END 區塊,例如程式、函式或觸發程式定義中的一個。 這些區塊的轉換方式應該與針對單一 MySQL 語句對象進行轉換的方式相同。

轉換 MySQL 資料庫物件

轉換 MySQL 資料庫物件時,必須先選取要轉換的物件,再讓 SSMA 執行轉換。 若要在轉換期間檢視輸出訊息,請在 [檢視] 功能表上選取 [輸出]。

將 MySQL 物件轉換成 SQL Server 或 Azure SQL 語法

  1. 在 MySQL 中繼資料總管中,展開 MySQL 伺服器,然後展開 [資料庫]。

  2. 選取要轉換的物件:

    • 若要轉換所有結構描述,請選取 [資料庫] 旁的核取方塊。

    • 若要轉換或省略某個資料庫,請選取資料庫名稱旁邊的核取方塊。

    • 若要轉換或省略某個物件類別,請展開結構描述,然後選取或清除類別旁的核取方塊。

    • 若要轉換或省略個別物件,請展開類別資料夾,然後選取或清除物件旁邊的核取方塊。

  3. 若要轉換所有選取的物件,請以滑鼠右鍵按一下 [資料庫],然後選取 [轉換結構描述]。

    您也能以滑鼠右鍵按一下物件或其父資料夾,然後選取 [轉換結構描述],以轉換個別物件或物件類別。

檢視轉換問題

某些 MySQL 物件可能無法轉換。 您可以檢視摘要轉換報表來判斷轉換成功率。

檢視摘要報告

  1. 在 MySQL 中繼資料總管中,選取 [資料庫]。

  2. 在右側窗格中,選取 [報告] 索引標籤。

    此報表會顯示已評估或轉換之所有資料庫物件的摘要評估報告。 您也可以檢視個別物件的摘要報告:

    • 若要檢視個別結構描述的報表,請在 MySQL 中繼資料總管中選取資料庫。

    • 若要檢視個別物件的報表,請在 MySQL 中繼資料總管中選取物件。 發生轉換問題的物件會帶有紅色錯誤圖示。

針對轉換失敗的物件,您可以檢視導致轉換失敗的語法。

檢視個別轉換問題

  1. 在 MySQL 中繼資料總管中,展開 [資料庫]。

  2. 展開顯示紅色錯誤圖示的資料庫。

  3. 在資料庫下,展開具有紅色錯誤圖示的資料夾。

  4. 選取具有紅色錯誤圖示的物件。

  5. 在右側窗格中,選取 [報告] 索引標籤。

  6. 在 [報表] 索引標籤頂端,是下拉式清單。 如果清單顯示 [統計資料],請將選取項目變更為 [來源]。

    SSMA 會顯示原始程式碼,程式碼正上方有數個按鈕。

  7. 選取下一個問題按鈕。 這是具有右指箭號的紅色錯誤圖示。

    SSMA 會反白顯示在目前物件中找到的第一個有問題的原始程式碼。

對於無法轉換的每個項目,您必須決定要對該物件執行的動作:

  • 您可以修改 MySQL 資料庫中的物件,以移除或修改有問題的程式碼。 若要將更新的程式碼載入 SSMA,您必須更新中繼資料。 如需詳細資訊,請參閱 連線到 MySQL

  • 您可以將物件排除在移轉作業之外。 在 SQL Server 或 SQL Azure 中繼資料總管和 MySQL 中繼資料總管中,清除項目旁的核取方塊,再將物件載入 SQL Server 或 Azure SQL,然後從 MySQL 移轉資料。