如何将mySql SQL脚本转换为MS SQL?

时间:2011-10-19 11:27:31

标签: mysql sql sql-server

我必须将客户的MySql数据库架构/数据迁移到MS SQL SERVER 2008.最后,我收到了70 Mb的SQL文件,其中mySQL方言与MSSQL不兼容。

DROP TABLE IF EXISTS `kladr`;
CREATE TABLE `kladr` (
  `id` int(11) NOT NULL DEFAULT '0',
  `idp` int(11) DEFAULT NULL,
...

花了一个星期的谈判才收到这样的文件,所以我不敢让mySQL管理员发给我MS SQL SERVER兼容的sql。有没有办法自动将mySQL方言转换为MSSQL SERVER方言?

4 个答案:

答案 0 :(得分:2)

最简单的方法是获得转换器。有多种选择可供选择,但可能很难找到一个好选择:有很多垃圾邮件选项可供选择,所有这些选项都需要花钱。

Microsoft有一本在线迁移手册:http://technet.microsoft.com/en-us/library/cc966396.aspx

你需要一些mysql工具和一些mssql工具,如上面链接所述。

添加简短的提示:
如果您查看名为“使用数据加载”的部分。您已经拥有的导出文件可能没问题,因此您可以跳过“生成mysqldump数据提取脚本”。

现在你需要的部分:

  

将提取的脚本与SQL查询分析器一起使用
  生成的脚本现在可用于创建数据库对象和插入数据。从MySQL脚本构造数据库模式的首选方法是使用SQL Server 2000附带的SQL查询分析器工具   您可以直接从“开始”菜单或SQL Server企业管理器内部运行SQL查询分析器。您还可以通过执行isqlw实用程序从命令提示符运行SQL查询分析器   为了使脚本能够正确执行,还需要一些额外的工作,这涉及到SQL方言的某些更改。另外,请记住浏览SQL脚本并将数据类型更改为SQL Server兼容类型。下图显示了mysqldump的导入脚本,请务必注意转储是ASCII脚本文件。

答案 1 :(得分:2)

SQLines提供工具和服务来帮助您传输数据,将数据库模式(DDL),视图,存储过程和函数,触发器,查询,嵌入式SQL语句和SQL脚本从MySQL转换为Microsoft SQL Server。

  

http://www.sqlines.com/online

答案 2 :(得分:0)

有几种方法可以测试SQL中是否存在表。这是一种方法。

if object_id('<table>','U') is not null  drop <table>

所以你需要转换所有的

DROP TABLE IF EXISTS `kladr`;

到那个语法。请注意,还有其他方法可以查看表是否存在。

此外,MS-SQL不使用`(反引号)字符,因此您需要删除所有这些字符。但是,当前由反引号包围的某些字段/表名可能是保留字,在这种情况下,您需要使用括号将[fld_name]分隔这些字段/表。

您可能还会在create table语法中遇到一些差异,基本语法也类似。以上示例适用于MS-SQL ...

您可以通过脚本编辑来完成,但我强烈建议您使用上面Nanne建议的链接。祝你好运

答案 3 :(得分:0)

您可以从收到的MySQL脚本中(重新)创建MySQL数据库,并使用数据库转换工具。我过去使用过FullConvert,而且效果很好。支持许多数据库,而且速度很快!