2011-03-23 73 views
1

我非常高兴被迫从旧系统导入数据到我们的新系统。旧系统使用MySQL,新系统使用MS SQL Server。不幸的是,我只能访问MySQL数据库中的数据转储(.sql)。基本上我需要能够创建一个C#进程,它将从.sql文件中导出所有记录并将它们保存到我们的新数据库中。有二进制图像和视频保存在MySQL数据库,但我想一旦我开始解析.sql文件,我可以弄清楚。ASP.NET 4 C# - 导入MySQL数据转储

有没有关于如何使用C#连接和成功解析.sql MySQL数据转储的示例代码?我将ASP.NET放在了标题中,因为这正是我用来构建网站的标题,但我相信这将需要一个夜间过程(它们保留旧系统,并且需要每晚导入)。

如果在另一个堆栈溢出问题中涉及这个问题,请指出我的方向。我在最初的搜索中没有找到任何东西。

感谢您的帮助!

+0

难道你不能直接导入到SQL服务器,并在需要时使用T-SQL处理表? – laurent 2011-03-23 02:21:08

+0

也看看SSIS(http://msdn.microsoft.com/en-us/library/ms141026.aspx) – 2011-03-23 09:15:21

+0

不幸的是,没有。我需要在导入每条记录后发送电子邮件,并导出嵌入到表格中的图像和/或视频。一旦我解析文件,导出图像和/或视频不应该太困难。 – Mike 2011-03-23 14:42:58

回答

0

使用compatibility option set to mssql运行MySQL转储。生成的转储文件只是一个创建所需对象和批量插入数据的脚本。使用--compatible=mssql选项,您应该可以在Microsoft SQL Management Studio中运行该脚本(假设它不是太大)。例如:

mysql -u username -p -h localhost --compatible=mssql DATA-BASE-NAME < data.sql 

然后,如果有必要,您可以每晚作为一个cron作业运行。