Вы находитесь на странице: 1из 5

CodeProject: Migrate MySQL to Microsoft SQL Server. Free source code and programmi...

Page 1 of 5

Database » Database » SQL Server Beginner License: The Code SQL, Windows, SQL Server (SQL
Project Open License (CPOL) 2005)

Migrate MySQL to Microsoft SQL Posted: 5 Sep 2008


Views: 27,171
Server Bookmarked: 23 times
By Niklas Henricson Unedited contribution

Migrate MySQL to Microsoft SQL Server in just a few simple steps

9 votes for this article.


Popularity: 4.26 Rating: 4.47 out of 5 1 2 3 4 5

Introduction
This article is describing few simple steps in order to migrate a MySQL into Microsoft SQL Server
2005. The technique is very easy, but useful if you plan to move your data from MySQL and
upgrade it finally to an MS SQL Server enviroment.

Background
Initially I started my search for an article in Codeproject regarding MySQL->MS SQL migration
without any success. I had an old PHPbb forum running, that needed to be upgraded to a
Microsoft enviroment entirely. I could have just kept MySQL and Apache server, but instead I
decided to migrate the entire concept of PHPbb to a YAF-forum.

Setup ODBC connection to MySQL database


This article will not go through on how to setup a MySQL or MS SQL server, but make sure you
have downloaded at least the MySQL ODBC Connector from here:
http://dev.mysql.com/downloads/connector/

For this article I downloaded the MySQL ODBC Connector 5.1.

The setup of this connector is pretty simple:

• Open your ODBC Data Source Administrator from the Control Panel -> Administrative
Tools. Under the tab labeled as "System DSN" press the "Add" button.

http://www.codeproject.com/KB/database/migrate-mysql-to-mssql.aspx?display=Print 11/5/2009
CodeProject: Migrate MySQL to Microsoft SQL Server. Free source code and programmi... Page 2 of 5

• On the "Create New Data Source" dialog that appeared, choose MySQL ODBC 5.1 Driver
and then press the "Finish" button.

• After that a MySQL connection configuration dialog will appear. Add your MySQL database
account information in it, preferably the "root" account which has full access to your
databases in MySQL. In this case my database is called "tigerdb". Do not change the port
to anything else then 3306, unless during your MySQL server installation have defined
something else.

http://www.codeproject.com/KB/database/migrate-mysql-to-mssql.aspx?display=Print 11/5/2009
CodeProject: Migrate MySQL to Microsoft SQL Server. Free source code and programmi... Page 3 of 5

• Press the "Test" button to ensure your connection settings are set properly and then the
"OK" button when you're done.

Create a MS SQL link to your MySQL database


In this state you are ready to establish a link towards MySQL database from your Microsoft SQL
Server Management Studio. Open a query window and run the following SQL statement:

EXEC master.dbo.sp_addlinkedserver
@server = N'MYSQL',
@srvproduct=N'MySQL',
@provider=N'MSDASQL',
@provstr=N'DRIVER={MySQL ODBC 5.1 Driver}; SERVER=localhost; DATABASE=tigerdb; USER=root;

This script will produce a link to your MySQL database through the ODBC connection you just
created on the previous stage of this article. The link will appear in the MS SQL Server
Management studio like this:

http://www.codeproject.com/KB/database/migrate-mysql-to-mssql.aspx?display=Print 11/5/2009
CodeProject: Migrate MySQL to Microsoft SQL Server. Free source code and programmi... Page 4 of 5

If it doesn't show up in the treeview, press the refresh button.

Import data between the databases


Create a new database in Microsoft SQL Server. I called mine for "testMySQL". In the query
window run the following SQL statement to import table shoutbox from the MySQL database
tigerdb, into the newly created database in MS SQL called testMySQL.

SELECT * INTO testMySQL.dbo.shoutbox


FROM openquery(MYSQL, 'SELECT * FROM tigerdb.shoutbox')

Thats it!

Points of Interest
During this migration I had to import lately my newly migrated database into the structure of
"Yet Another Forum" tables. For that I used a series of SQL-scripts. However I am not going to
post them here. If folks leave comments here about the need to these script, just tell me and I
will gladly change this article and start adding them. You're welcome to post your comments.

Another issue you will most likely encounter are the differences between these two databases
based on datatypes. I would suggest to proceed with a reverse engineering of your MySQL
database (for example, Visio is one application that provides reverse engineering functionality)
and start mapping all the differences and potential risks of loosing parts of data for instance,
within varchar columns.

Microsoft SQL datatypes: http://msdn.microsoft.com/en-us/library/aa258271.aspx

MySQL datatypes: http://dev.mysql.com/tech-resources/articles/visual-basic-datatypes.html

http://www.codeproject.com/KB/database/migrate-mysql-to-mssql.aspx?display=Print 11/5/2009
CodeProject: Migrate MySQL to Microsoft SQL Server. Free source code and programmi... Page 5 of 5

History
2008-09-05: First version of this article.

License
This article, along with any associated source code and files, is licensed under The
Code Project Open License (CPOL)

About the Author

Niklas Henricson Niklas Henricson began with programming in 1999 by working


for the Swedish Working Life Enviroment authority.

Since then, he has been involved in numerous projects


involving MTS/COM+, VB 6.0, ISE Eiffel 4.5,
ASP.NET/C#/VB.NET as well as common ASP, and finally
database enviroments based on Oracle, MySQL and MS SQL.

Between April 2007 and December 2008, Niklas worked as


consultant for Mandator AB with some of his assignments
spended in Ericsson.
Member
Today he works as a senior consultat at Cybercom Group in
Sweden assigned in a project for the Swedish Institute for
Infectious Disease Control.

One of his most favorite books regarding programming is "The


Pragmatic Programmer". Something he is recommending
everyone to read.
Occupation: Web Developer
Company: Cybercom Group South AB
Location: Sweden

Discussions and Feedback


38 messages have been posted for this article. Visit
http://www.codeproject.com/KB/database/migrate-mysql-to-mssql.aspx to post and
view comments on this article, or click here to get a print view with messages.

PermaLink | Privacy | Terms of Use Copyright 2008 by Niklas Henricson


Last Updated: 5 Sep 2008 Everything else Copyright © CodeProject, 1999-2009
Editor: Web17 | Advertise on the Code Project

http://www.codeproject.com/KB/database/migrate-mysql-to-mssql.aspx?display=Print 11/5/2009

Вам также может понравиться