今天和你们分享一下如何将本身的mysql数据库移植到sqlserver数据库中来。具体的作法以下:mysql
一、首先,确保本身的电脑中安装了mysql数据库和sqlserver数据库。
sql
二、安装MySQL ODBC驱动:为MySQL安装Connector/ODBC驱动。在此须要注意的一点是Connector/ODBC驱动与MySQL Server的版本对应问题,若是本身电脑中已经存在该odbc驱动便可没必要按照。数据库
三、建立系统DSN:建立系统DSN步骤以下:开始->设置->控制面板->管理工具->数据源(ODBC),按该流程打开ODBC数据眼管理器,如图所示。服务器
四、切换至系统DSN选项卡,点击添加按钮。弹出建立新数据源对话框,选择MySQL ODBC 5.3 AANSI Driver驱动程序,点击完成按钮。(注意说明:选择本身电脑中安装的odbc版本,不必定是个人这个版本)ide
五、在弹出的配置框中填写数据源名、MySQL服务器IP、端口、用户名和密码,点击[ok],ODBC数据源建立成功。(说明一下相关的字段说明:第一个是自定义的dns的名称,第二个是相关的描述能够不写,第三个是服务器的地址,是本地服务器就写localhost或者127.0.0.1或者本地的电脑名称;若是是远程服务器就须要写对应的地址,3306是默认的mysql端口,通常不用更改,下面的三个分别是mysql数据库的登陆名、登陆密码以及须要建立数据源的mysql数据库中的数据库名称 。输入完成后上面的内容,点击test来测试一下是否链接成功,出现图中即表示成功。)工具
六、创建连接服务器sqlserver
创建连接服务器有两种方式,能够经过SQL Server Management Studio中的向导创建,也能够直接使用SQL语句创建。测试
在SQL Server Management Studio中链接上SQL Server,而后在[服务器对象]->[连接服务器]上点击右键,选择[新建链接服务器(N)…]。spa
在[连接服务器]框中填写自定义的连接服务器名称,[服务器类型]选择[其余数据源],[访问接口]选择”Microsoft OLE DB Provider for ODBC Drivers”,[产品名称]跟连接服务器名称填写成同样的,[数据源]填写刚才建立的ODBC数据源,点击[肯定],连接服务器建立成功。.net
其实,也能够不创建ODBC数据源,直接创建连接服务器的,只要把[数据源]留空,而在[访问接口字符串]中填写连接字符串
“Driver={MySQL ODBC 5.1 Driver};Server=192.168.0.21;Database=test; User=root;Password=rootPassword;Option=3;”便可。以下图:
可使用如下SQL语句建立连接服务器,其中使用了ODBC数据源:
EXEC master.dbo.sp_addlinkedserver
@server = N'TestMySQL', --连接服务器名
@srvproduct = N'TestMySQL', --产品名称
@provider = N'MSDASQL', --访问接口
@datasrc = N'TestServer' --数据源名称
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'TestMySQL',@useself=N'False',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL
GO
也可使用如下SQL语句建立连接服务器,其中没有使用ODBC数据源,使用的是访问接口字符串:
EXEC master.dbo.sp_addlinkedserver
@server = N'TestMySQL', --连接服务器名
@srvproduct = N'TestMySQL', --产品名称
@provider = N'MSDASQL', --访问接口
@provstr = N'Driver={MySQL ODBC 5.1 Driver};Server=192.168.0.21;Database=test; User=root;Password=rootPassword;Option=3;' --访问接口字符串
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'TestMySQL',@useself=N'True',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL
GO
七、经过上面的步骤已经能够访问mysql的数据库了,如今经过sql语句将mysql复制过来,具体的操做以下代码所示:
SELECT * INTO 本身的在sql中新建一个对应的数据库的数据库名称.dbo.对应的数据库的数据库表名称
FROM openquery(创建DNS数据源所自定义的名称, 'SELECT * FROM mysql数据库的名称.mysql数据库中对应的数据表名称')
例如:
SELECT * INTO takeout.dbo.takeout_region
FROM openquery(MYSQL, 'SELECT * FROM takeout.takeout_region')
须要将每一张表都经过该sql语句来进行复制到sqlserver数据库,记住每一张表只须要更改对应的名称便可。
八、在整个移植的过程当中若是出现7303错误,找不到对应的驱动或者数据源,或者数据库结构不一致的时候,可能建立的系统DNS版本不一致形成的问题,对于这种问题能够经过换成32位的数据源或者换成64位的数据源来进行操做一次,便可解决该问题。
九、还有一些其余的相为:http://ask.csdn.net/questions/157488 ;http://blog.csdn.net/xiaoliouc/article/details/13511999