一直在研究将MSSQL转换为MYSQL。对我来说最好的选项是使用MSSQL.sql并使用PhpMyAdmin导入它。
以下帖子和链接很有帮助:
How to export SQL Server database to MySQL?
How to convert SQL Server database to MySQL database
但是当我尝试这样做时,似乎失败并出现以下错误:
您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以获得正确的语法
这发生在.sql文件的点上,如:
USE [充电]
GO
/ ******对象:表[dbo]。[CountryNm]脚本日期:01/10/2013 13:28:42 ****** /
这似乎是MSSQL.sql文件的基本部分。我已经尝试从文件中删除USE和GO,但随后在评论处停止。我还没有删除这些,因为我认为某些事情可能从根本上与我正在做的事情有关?
我将PhpMyAdmin设置为格式:SQL,格式特定选项:MSSQL并且不要将AUTO_INCREMENT用于零值:选中。
非常感谢提前
编辑:MSSQL Server Management Studio脚本向导选项:
ANSI Padding:True
附加到文件:错误
在Error:False
上继续编写脚本将UDDT转换为基本类型:False
为依赖对象生成脚本:False
包含描述性标题:True
包括IF NOT EXISTS:False
包含系统约束名称:False
架构质量对象名称:True
脚本绑定:错误
脚本整理:真实
脚本默认值:True
脚本丢弃:错误
脚本扩展属性:True
服务器版本脚本:SQL Server 2008
脚本登录:错误
脚本对象级权限:错误
脚本使用数据库:错误
脚本更改跟踪:错误
脚本检查约束:True
脚本日期:真实
脚本数据压缩选项:错误
脚本外键:True
脚本全文索引:错误
脚本索引:错误
脚本主键:True
答案 0 :(得分:0)
没有GO
关键字,它只是SSMS / OSQL的脚本拆分器和一些其他MS产品(可从选项中自定义)。
更改数据库的USE
语句在MYSQL中应该没问题 - 请参阅here以获取参考。尝试将GO
换成分号以结束语句。
根据docs,这种评论也适用于Mysql。
考虑到这两点,请尝试以下声明:
USE [Charging];
/* Object: Table [dbo].[CountryNm] Script Date: 01/10/2013 13:28:42 */
答案 1 :(得分:0)
嗯,这是一个特别痛苦的练习,但我设法让MSSQL数据库迁移到MSSQL,这是最终目标。但是没有沿着使用PhpMyAdmin的路线走下去,这似乎是第一眼看上去最简单的。
MSSQL服务器已被隔离,所以我不得不备份数据库(.BAK文件)并在我的本地计算机上安装MSSQL server 2008 express。我在Windows 7专业PC上单独安装Microsoft SQL Management Studio Express时遇到了很多麻烦,但通过安装MSSQL server 2008高级服务解决了这个问题。然后我将备份恢复到那个。 不确定是否需要这个,但我还安装了MYSQL ODBC驱动程序。
然后我安装了SQL Data Examiner 2012.这使我可以同时连接到本地MSSQL实例和我的远程MYSQL数据库。然后我可以将表添加到MYSQL DB并运行同步。 幸运的是,这似乎突出了为什么我可能遇到使用PhpMyAdmin导入的问题,大多数似乎是MYSQL不喜欢的超过16列的表!
好吧,它仍然是成功的,我能够在我导出的一些表中放下很多列 - 希望对同样情况下的其他人有用。