MSSQL to MySQL Exporter

最近因为工作的需求关系,需要将MSSQL的资料库转到MySQL的资料库,自己写程式觉得很累,想说有没现成的软体可以做转换,有找到MSSQL-to-MySQL不过要价$49美金,其实也不算贵,但自己已经会写程式了,还得另外花钱,就不划算了。

[adsense][/adsense]

芝麻电脑诊所有一篇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

9条评论

  1. 谢谢您的分享
    有下载MSSQLtoMySQL使用
    只能读取MSSQL点选Export Data按钮
    无法转到MySQL 出现另存新档的视窗
    能帮忙吗?? 谢谢!!

    1. Author

      嗯,你的意思是说另存新档的档案是错的吗?
      这个问题其实ㄚ琪有发现到,所以ㄚ琪最近在修改它的程式,这样才可以转到MySQL,
      如果有新的进展ㄚ琪会再公布,谢谢。

  2. 工具很好用,但汇出日期时间栏位时,没有汇出”时分秒”

  3. 超赞的!!感谢分享

  4. 谢谢 不过nvarchar(max)转出来变成ntext但mysql好像不吃ntext
    还有 datetime2(7)转出来变成datetime2(27) mysql好像没有datetime2
    是我的MYSQL版本问题吗?
    不过我手动修正后后成功汇入 谢谢你

    1. Author

      不客气,确实需要这样修正,才能转。


  5. ㄚ琪您好,请问这个程式是不是有罪大笔数的限制,因为我有几个资料表比数超过一万,每次转都会当掉….

    1. Author

      没有确认最大笔数限制,但是会不会跟记忆体数量有关系也不得而知,重点是这只程式的原始码在哪?也忘了,可能在两颗坏掉的硬碟中也不一定。

Comments are closed.