首页 / 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 admin

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

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

Scroll To Top