2011-10-19 40 views
1

我必須將客戶MySql數據庫模式/數據遷移到MS SQL SERVER 2008.最後,我收到了與MSSQL不兼容的mySQL方言的70 Mb SQL文件。如何將mySql SQL腳本轉換爲MS SQL?

DROP TABLE IF EXISTS `kladr`; 
CREATE TABLE `kladr` (
    `id` int(11) NOT NULL DEFAULT '0', 
    `idp` int(11) DEFAULT NULL, 
... 

花了談判的一個星期收到這樣的文件,所以我不敢問的MySQL管理員給我MS SQL SERVER兼容SQL。有沒有辦法將mySQL方言自動轉換爲MSSQL SERVER方言?

+0

你有沒有找到這個好的解決辦法?我也需要這個。 –

回答

2

最簡單的方法是獲得一個轉換器。有多種選擇,但可能很難找到一個好的選擇:有很多垃圾郵件選項可用,所有這些選項都需要花費金錢。

微軟已經遷移手動在線:http://technet.microsoft.com/en-us/library/cc966396.aspx

,知道你們需要一些MySQL的工具和一些mssql的工具,上面的鏈接表示上。

添加一個簡短的exerpt:
如果您簽出名爲'使用數據加載'的部分。你已經擁有的導出文件可能沒問題,所以你可以跳過'生成mysqldump數據提取腳本'。

現在的一部分,你需要:

使用與SQL查詢分析器
生成的腳本所提取的腳本現在可以用於創建數據庫對象和插入數據。從MySQL腳本構建數據庫模式的首選方法是使用SQL Server 2000附帶的SQL查詢分析器工具。
您可以直接從「開始」菜單或從SQL Server企業管理器內運行SQL查詢分析器。您也可以通過執行isqlw實用程序從命令提示符運行SQL查詢分析器。
爲了讓腳本正確執行,還需要一些額外的工作,其中涉及SQL方言的某些更改。另外,請記住遍歷SQL腳本並將數據類型更改爲SQL Server兼容類型。下圖顯示了mysqldump導入的腳本,重要的是要注意轉儲是ASCII腳本文件。

+0

我覺得他只是想轉換的SQL腳本,不知道MySQL的連接細節,如主機和ACCT(猜我一樣,現在我需要獲取的wordpress博客 – Elaine

+0

是的,如果你看一下這個鏈接,你會發現標題「使用數據正在加載'.Or allready擁有的導出文件就是你需要的連接細節,正如'生成mysqldump數據提取腳本'部分所述,所以你可以跳過這一步,然後從那裏開始。 – Nanne

0

有幾種方法可以測試SQL中是否存在表。這是一種方法。

if object_id('<table>','U') is not null drop <table> 

所以,你需要所有的

DROP TABLE IF EXISTS `kladr`; 

轉換爲語法。請注意,還有其他方法可以查看是否存在表。

此外,MS-SQL不使用`(反向)字符,所以你需要擺脫所有這些。但是,當前由反引號包圍的某些字段/表名可能是保留字,在這種情況下,您需要用括號括起[fld_name]來分隔這些字段/表。

您也可能會遇到create table語法中的一些差異,基本語法也是類似的。上面的例子將工作在MS-SQL ...

你可以做腳本編輯,但我強烈建議使用上面的Nanne建議的鏈接。祝你好運

0

SQLines提供的工具和服務,幫助您傳輸數據,轉換數據庫架構(DDL),視圖,存儲過程和函數,觸發器,查詢,嵌入式SQL語句和SQL腳本從MySQL到Microsoft SQL Server。

http://www.sqlines.com/online