将数据从 MySQL 迁移到 SQL Server

Posted

技术标签:

【中文标题】将数据从 MySQL 迁移到 SQL Server【英文标题】:Migrating data from MySQL to SQL Server 【发布时间】:2012-05-14 14:19:51 【问题描述】:

我希望。我的第一个想法是以 .bak 格式备份数据并转储到 SQL Server 中。那么有没有什么办法可以得到一个.bak格式的mysql数据库备份文件呢?

另外,有没有更简单、更容易的方法?

【问题讨论】:

您始终可以将转储文件扩展名指定为 .bak .bak 是特定于 SQL Server 的专有二进制格式。 MySQL 只能转储到基于文本的文件,这些文件具有用于重建 db/tables/data 的原始 SQL 语句。您可以将该转储文件加载到 sql server 的控制台中,然后将其作为一长串命令运行。 【参考方案1】:

您是否从 MS SQL(标准版或更高版本随附)尝试 SSIS? 我不知道您要传输什么,但表格和视图通过这种方式很容易:

    创建一个新的 MS SQL 数据库(空) 右键数据库选择任务->导入数据 作为源,您选择 mySQL 驱动程序(需要先安装 - http://dev.mysql.com/downloads/connector/odbc/) 选择数据库,连接它,然后跟随助手选择视图和表 在助手结束时,您可以保存 SSIS 包并使用 Visual Studio Business Intelligence 中的 SSIS 项目对其进行编辑(还附带 MS SQL 标准或更高版本),或者您只需运行它。如果您遇到传输/转换问题,您可能需要使用 Studio 版本对其进行编辑并修改包以处理有问题的表/列。

【讨论】:

【参考方案2】:

我希望您不必这样做,但作为最后的手段,您可以生成自定义 SQL 数据转储,如下所示;

SELECT CONCAT_WS( ' '
   , 'INSERT INTO [dbo].[table_name] (col1,col2) VALUES'
   , col1
   , CONCAT( '"', col2, '"' )
   , ';'
) AS '-- Inserts'
FROM table_name
ORDER BY col1 ASC;

这可以像您喜欢的那样复杂,但我只建议您在将数据导入 SQL Server 时遇到问题,例如:自动数据转换问题。除非您的数据量很大,否则您最好使用mysqldump 并通过例如过滤输出。 sedperl

【讨论】:

以上是关于将数据从 MySQL 迁移到 SQL Server的主要内容,如果未能解决你的问题,请参考以下文章

(转)如何将数据库从SQL Server迁移到MySQL

怎么将数据库从Oracle迁移到SQL Server,或从Oracle迁移到MySQL

从mysql迁移到sql server

从 MySQL 到 SQL Server 的 Hibernate + Spring 迁移

将 MySQL 数据库数据迁移到 SQL Server [重复]

如何将 Hibernate 从 MySQL 迁移到 SQL Server?