MySQL如何转SQL server

时间:2025-03-11 11:05:14

MySql的数据如何导入到Sql Server数据库中?(转载)

本文咱讨论的重点是如何将MySql数据导入到Sql Server数据库中,所以就需要机器上同时安装了MySql和Sql Server两种数据库。

要点:mysql 和 mysql odbc 都是64位

MySQL如何转SQL server

当我们拿到MySql数据文件时,首先在MySql数据库下建立一个新的数据库,随便取名为"dapingtai",将sql文件拖入查询窗口会直接打开该文件,然后执行就会得到sql文件中的想要的表接口和数据,但是当sql文件比较大时,如上图的bang-region-dump-160927.sql是102M大小的,直接拖入查询窗口就会出现一个警告框

MySQL如何转SQL server

警告框告诉我们这个文件比较大,并提供了“打开”和“运行sql脚本”两个操作选项。这里有一个小坑(直接点击“Run SQL Script”会出现一个错误,如下图),我们还是先“Open”,在执行吧。

MySQL如何转SQL server

成功执行上述两文件,会得到一个名为“dapingtai”的MySql数据库

MySQL如何转SQL server

接下来就开始我们MySql数据库到Sql Server数据的转化工作。。。

(一)为 MySQL安装ODBC驱动

1. 下载MySQL ODBC Connector,下载:http://dev.mysql.com/downloads/connector

2. 从控制面板-管理工具,打开你的 数据源(ODBC),选 系统DNS ,点添加。

MySQL如何转SQL server

3. 在 创建新数据源对话框中,选择MySQL ODBC 5.3 ANSI Driver ,点完成。

MySQL如何转SQL server

4.完成后会出现MySQL 链接对话框,添加你的 MySQL 数据库账号信息,并确认"root"账号是否有全部的权限,如果你安装MySQL 没有修改的话, 不要改 3306这个端口号。

MySQL如何转SQL server

5.选择要建立连接的数据库,并测试。

MySQL如何转SQL server

(二)创建Microsoft SQL到MySQL的链接

1.在SQL Server Management Studio中打开一个new query 拷贝以下语句,修改为你的数据库的名称、账户密码,并运行。

  1. EXEC master.dbo.sp_addlinkedserver
  2. @server = N'MYSQL',
  3. @srvproduct=N'MySQL',
  4. @provider=N'MSDASQL',
  5. @provstr=N'DRIVER={MySQL ODBC 5.3 ANSI Driver}; SERVER=127.0.0.1; _
  6. DATABASE=dapingtai; USER=root; PASSWORD=*******; OPTION=3'

2.这个脚本通过ODBC驱动创建一个联接到你的MySQL数据库,这个联接出现在Microsoft SQL Server Management Studio如下图:

MySQL如何转SQL server

没有出现MYSQL这个连接的话,就刷新一下看看。

有的话点连接前的+号展开看看表是否都完全映射过来了。。。。这里也可能会有一个坑,反正我踩了。。。见下图:

MySQL如何转SQL server

见到错误也不要着急,请仔细检查调用master.dbo.sp_addlinkedserver传递的的参数@provstr所填写的数据库驱动是否和建立ODBC时所选的驱动名称一致?MySQL ODBC的版本是不是不对应?错误往往都是自己的粗心大意而造成的哦。。。

(三). 在两个数据库之间导数据

在Microsoft SQL Server中创建个新的数据库(如:homework1),在new query中拷贝如下语句,运行后就可以把MySQL 数据库 “dapingtai"导入到Microsoft SQL 数据库“homework1”中。  

导入Region表

  1. SELECT * INTO [homework1].dbo.Region
  2. FROM openquery(MYSQL, 'SELECT * FROM dapingtai.region')

成功导入。。

导入Category表

  1. SELECT * INTO [homework1].dbo.category
  2. FROM openquery(MYSQL, 'SELECT * FROM dapingtai.category')

咦,出错了!!!

MySQL如何转SQL server

来在MySql下看一下Category的表设计,keyword字段为VARCHAR(100)

MySQL如何转SQL server

我们查查看嘛,唉!还真有几个不按套路出牌的家伙。。。。见下图

MySQL如何转SQL server

好吧,我忍了。。。那keyword字段到底应该给多大呢?

MySQL如何转SQL server

索性把Category表的字段改为VACHAR(200),在执行就成功了。

最后!!!!!千万不要忘了添加索引主键什么的哦,因为这种导入方式并不能导入表之间的关系,弄好这些以后就大功告成啦。。。评论走起