災難~哉難,大概可以這樣形容...
應某上田下木おおき商売の請求(後面簡稱田木商)...
無奈需要我們把又小巧好用又跨平台的MySQL轉換到M$SQL上面,
田木商直誇他們M$系列用得愜意(不喟是一季賺4~5億的大咖),
希望我們把SERVER跟DB都轉換到M$的2003SERVER M$SQL2005以上,
小弟公司,主要是用ORACLE跟MySQL來的,會M$SQL的連半隻貓都沒有...
那麼就開始GOOGLE了...
import mysql into mssql
Migrate MySQL to MSSQL
結果~嗯嗯!資料特多,
大部分的老米都建議去下載安裝MySQL ODBC connector,
下載位置:http://dev.mysql.com/downloads/connector/
於是乎我也照辦了,就按照這個網站的指示:
http://www.codeproject.com/KB/database/migrate-mysql-to-mssql.aspx
該發文者文章最後都很帥氣的寫"Thus it!",
但我不管怎麼Try都是Thus FXXk!!!,
但是老米的文章都是千篇一律(例如這個也是http://blog.empiregpservices.com/post.cfm/import-mysql-into-mssql-free-easy)
ODBC~ODBC...O到老~且自稱都是又快又好的方法,
算了,把google搜尋的語言改成阿本仔...
喔!
喔!喔!
找到
步兵片 重點了!!!
嘿嘿嘿~ODBC不支援
utf-8,
讚拉!賓果拉!
阿本仔果然也有遇到,但解法呢?
阿本仔竟然推薦寫支程式去READ & INSERT,
棍!
這不是笨到靠北~邊嗎?
...
忍耐,把GOOGLE搜尋區域切到台灣,並開始動用MSN找朋友~
果然,台灣人就是帥!
http://social.msdn.microsoft.com/Forums/zh-TW/240/thread/8eff3405-0c60-4065-b5dc-a316ac2661c3
解法~改用MySQL .NET connector!
一樣是去這邊下載:http://dev.mysql.com/downloads/connector/
但~然後呢??
這跟M$許多軟體內建的HELP,非常雷同...不是找不到,就是找到只有一句話^^;
皆下來...就...
- 1.開啟SQL2008SERVER
- 2.開啟OBJECT EXPLORE
- 3.對Databases點選右建,新增你的目的地 New Database(假設叫NDB)
- 4.對NDB點右鍵,選取Tasks->Import Data...(就會進入一個互動介面)
- 5.針對介面進行作業
- 5.1.選擇datasource: .Net Framework Data Provider for MySQL(記得要去先下載安裝MySQL .NET connector)
- 5.2.1.接著就進行設定Connection(設定你MySQL實體的位置包含DB名稱與IP)
- 5.2.2.接著就設定Security(設定連結MySQL的ID跟PWD)-按下NEXT(正確的話會進入5.3.的動作)
- 5.3.選擇你要import的Destination
- 5.4.只要5.3.的步驟正確,連按兩個NEXT
- 5.5.下SQL Statemt吧!我的範例如下
SELECT * FROM tablename //tablename就是你要轉換的來源table名稱
- 然按下Parse他會檢查你下的SQL是否有錯,按下NEXT
- 5.6.接下來會來到下一個介面,這邊要把Deastination下面的[dbo].[Query],中的Query改成你要的名稱,既然是轉移,通常會取得跟來源是一樣的
- 5.6.1.接下來可以點Preview...看看讀進來的資料跟Schema是不是你要的或是對的
- 5.6.2.接下來點Edit Mappings...執行這個步驟把SCHEMA好好檢查一遍,通常DATATYPE都會轉換錯誤,記得親手調一遍~
- 5.7.接下就一路NEXT到FINISH然後執行看結果,如果有遇到Warrning就根據report去排除了
後記,M$的軟體一貫特色就是又大又笨重又囉唆,但是圖形介面給很多新手降低入門恐懼,
但很多是脫褲子放屁,搞得更不知道怎麼用~不如給個CONSOLE直接下COMMAND算了...
感謝Andy、Penny、Honny的協助,此外Penny也找到了M$的一個好工具:SQL Server Migration Assistant 2008 for SQL,
不過...雖然介面簡單易懂又好用~但不愧是M$...透過ODBC...一樣轉失敗阿阿阿~
呼~好累,因為一向使用正版原則,只好到MSDN去下載WIN2008SERVER 跟SQLSERVER 2008 Enterprise評估版...所為別問我為何不使用介面親切易懂的舊版(其實應該是用習慣的人很多了也比較好取經...)但~時也命也運也~
備忘:用ODBC時...2008可以用此方法直接連結MySQL
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; PASSWORD=hejsan; OPTION=3'