我必须将客户MySql数据库架构/数据迁移到MS SQL server2008。最后,我收到了70MbSQL文件与mySQL方言是不兼容的。
DROP TABLE IF EXISTS `kladr`;
CREATE TABLE `kladr` (
`id` int(11) NOT NULL DEFAULT '0',
`idp` int(11) DEFAULT NULL,
...我花了一周的时间才收到这样的文件,所以我不敢要求mySQL管理员给我发送兼容mySQL的sql。有没有办法自动将mySQL方言转换成MSSQL SERVER方言?
发布于 2017-12-11 20:04:47
SQLines提供的工具和服务可帮助您从MySQL向Microsoft SQL Server传输数据、转换数据库模式、视图、存储过程和函数、触发器、查询、嵌入式SQL语句和SQL脚本。
http://www.sqlines.com/online
发布于 2011-10-19 19:34:10
最简单的方法是获得一个转换器。有多个选项可用,但可能很难找到一个好的:有很多垃圾邮件选项可用,当然都是要花钱的。
微软有一个在线迁移手册:http://technet.microsoft.com/en-us/library/cc966396.aspx
你将需要一些mysql工具和一些mssql工具,如上面的链接所述。
添加一个简短的exerpt:
如果您查看名为“使用数据加载”的部分。您已经拥有的导出文件可能没有问题,因此您可以跳过“生成mysqldump数据提取脚本”。
现在你需要的部分是:
在SQL Query Analyzer中使用提取的脚本的
生成的脚本现在可用于创建数据库对象和插入数据。从MySQL脚本构造数据库架构的首选方法是使用SQL Server2000附带的SQL Query Analyzer工具。
可以直接从“开始”菜单或从SQL Server企业管理器内部运行SQL查询分析器。还可以通过执行isqlw实用工具从命令提示符下运行SQL查询分析器。
为了让脚本正确执行,还需要做一些额外的工作,这涉及到SQL方言的某些更改。此外,请记住遍历SQL脚本并将数据类型更改为与SQL Server兼容的类型。下图显示了从mysqldump导入的脚本,需要注意的是,该转储是一个ASCII脚本文件。
发布于 2011-10-19 19:40:33
有几种方法可以测试表在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建议的链接。祝好运
https://stackoverflow.com/questions/7820626
复制相似问题