首頁 / CompScience / Programming / Languages / C# / MSSQL to MySQL Exporter

MSSQL to MySQL Exporter

最近因為工作的需求關係,需要將MSSQL的資料庫轉到MySQL的資料庫,自己寫程式覺得很累,想說有沒現成的軟體可以做轉換,有找到MSSQL-to-MySQL不過要價$49美金,其實也不算貴,但自己已經會寫程式了,還得另外花錢,就不划算了。

芝麻電腦診所有一篇MS SQL移轉MySQL,是透過MySQL Migration Toolkit來轉的,不過ㄚ琪沒找到。

最後在SourceForge找到了MSSQL to MySQL Exporter,它是用C#的.NET平台寫得,可以資料表,然後選擇你要匯出的資料表,它會輸出新增資料表及資料列的SQL語法,屆時再把這些SQL語法匯入到MySQL中就可以了,雖然沒有直接轉換,但是這樣子已經可以符合需求了,對於幾百MB的資料量轉換已經夠了。

不過ㄚ琪實際在使用時發現了一個問題,就是不知哪位天兵,竟然將一個資料表的名稱設為Function,眼尖的人都會曉得這很可能是關鍵字,所以這個系統會丟出錯誤。

ㄚ琪算是比較龜吧,就開啟原始碼來改了,這個原始碼是Visual Studio舊版編譯的,所以用ㄚ琪的Microsoft Visual C# 2010 Express開啟需要做轉換,一度還發生ㄚ琪安裝的Microsoft Visual C# 2010 Express有問題需要重新安裝。

警告 1 ‘System.Data.SqlClient.SqlParameterCollection.Add(string, object)’ 已過時: ‘Add(String parameterName, Object value) has been deprecated.  Use AddWithValue(String parameterName, Object value).  http://go.microsoft.com/fwlink/?linkid=14202′這樣子的警告,將Add方法改為AddWithValue就可以正確。

另外因為Function是關鍵字,所以ㄚ琪需要將cm = new SqlCommand(“select * from “+tablename, objConn);

改成cm = new SqlCommand(“select * from \””+tablename+”\””, objConn);

這樣程式才能正確執行。

好了,這個程式現在不用錢ㄚ琪奉送給各位免費使用。下載=>MSSQLtoMySQL

馬上成為工作達人的Fans

About ㄚ琪

工作達人Fun Taiwan的創辦者及總編,可以在這裡更認識他。

9 comments

  1. 謝謝您的分享
    有下載MSSQLtoMySQL使用
    只能讀取MSSQL點選Export Data按鈕
    無法轉到MySQL 出現另存新檔的視窗
    能幫忙嗎?? 謝謝!!

    • 嗯,你的意思是說另存新檔的檔案是錯的嗎?
      這個問題其實ㄚ琪有發現到,所以ㄚ琪最近在修改它的程式,這樣才可以轉到MySQL,
      如果有新的進展ㄚ琪會再公佈,謝謝。

  2. 工具很好用,但匯出日期時間欄位時,沒有匯出”時分秒”

  3. 超讚的!!感謝分享

  4. 謝謝 不過nvarchar(max)轉出來變成ntext但mysql好像不吃ntext
    還有 datetime2(7)轉出來變成datetime2(27) mysql好像沒有datetime2
    是我的MYSQL版本問題嗎?
    不過我手動修正後後成功匯入 謝謝你

  5. ㄚ琪您好,請問這個程式是不是有罪大筆數的限制,因為我有幾個資料表比數超過一萬,每次轉都會當掉….

    • 沒有確認最大筆數限制,但是會不會跟記憶體數量有關係也不得而知,重點是這隻程式的原始碼在哪?也忘了,可能在兩顆壞掉的硬碟中也不一定。

發表迴響

你的電子郵件位址並不會被公開。 Required fields are marked *

*

Scroll To Top
按讚 !
愛你喔!