我有一個包含表格,定義和數據的MySQL轉儲的.sql文件插入到這些表中。如何將轉儲文件中表示的此數據庫轉換爲MS SQL Server數據庫?將MySQL數據庫導入MS SQL服務器
回答
我找到一種方式,這在網絡上
它要求工作的一點點,因爲它必須由表來完成表。但無論如何,我可以將表,數據和約束條件複製到MS SQL數據庫中。
這裏是鏈接
http://www.codeproject.com/KB/database/migrate-mysql-to-mssql.aspx
這就是當Mysql和SQL都在一臺機器中或者它們通過網絡連接時。當兩臺不同的機器存在並且你有一個來自mysql的轉儲文件時這沒有用。對? – Espanta 2015-11-06 09:37:30
如果使用PhpMyAdmin執行導出,則可以將sql兼容模式切換爲「MSSQL」。這樣,您只需針對MS SQL數據庫運行導出的腳本,就完成了。
如果你不能或不想使用PhpMyAdmin,mysqldump也有一個兼容性選項,但是我個人寧願讓PhpMyAdmin爲我做。
@marga,它沒有爲MS SQL 2008工作。 – marionmaiden 2010-04-14 11:26:35
這個答案適用於我,只需最小的修改生成的腳本。將它帶入SQL Server 2012.之前沒有看到兼容模式。 – Kiel 2016-06-29 14:04:23
我建議你使用mysqldump像這樣:
mysqldump --compatible=mssql
phpMyAdmin仍然是一個web應用程序,並可能有大型數據庫一些限制(腳本的執行時間,分配內存等等)。
@deklin,它沒有爲MS SQL 2008工作。 – marionmaiden 2010-04-14 11:26:15
唉,這給了我各種各樣的兼容性問題。該腳本將包含反列周圍的列名稱,MSSQL中不存在的數據類型,將違反max-1000-inserts約束,auto_increment關鍵字等等。此答案是合乎邏輯的建議,但恐怕它不會工作得不好(至少:它不適合我)。 – Jeroen 2012-11-03 08:16:40
使用SQL Server Migration Assistant (SSMA)
除了MySQL之外它支持Oracle,Sybase和MS訪問。
它看起來相當聰明,甚至能夠處理非平凡的轉移。它還具有一些命令行界面(除了GUI),理論上它可以集成到一些批量加載過程中。
這當前的下載鏈接,MySQL版本http://www.microsoft.com/en-us/download/details.aspx?id=42657
目前(2016年6月)的穩定版6.0.1崩潰,並顯示當前(5.3.6)MySQL的ODBC驅動程序,同時傳輸數據。一切都是64位。 使用5.1.13 ODBC驅動程序的5.3版本正常工作。
只有當您可以將PC上的ODBC連接器安裝到您的MySQL數據庫時,此工具纔有效。如果你只有一個.sql轉儲文件,你不能使用SSMA。 – 2013-02-21 18:20:27
MySQL引擎是免費軟件,也有一個Windows版本。安裝它並加載轉儲是一件微不足道的工作。如果你希望找到一種工具(甚至是商業版,更不用說免費),它可以可靠地將任意MySQL腳本轉換爲與SQL Server相同的工具 - 好吧,祝你好運。 – 2013-02-22 01:16:06
好點。這就是昨天我最終做的。在編寫自己的自定義轉換實用程序時,安裝MySQL似乎是最佳選擇。 SSMA在使用時很痛苦,但我最終得到了它的工作。 – 2013-02-22 16:07:07
這是我的導入方法。SQL文件到MS SQL:從MySQL
導出表
--compatible=mssql
和--extended-insert=FALSE
選項:mysqldump -u [username] -p --compatible=mssql --extended-insert=FALSE db_name table_name > table_backup.sql
拆分使用PowerShell導出的文件,每檔30萬行:
$i=0; Get-Content exported.sql -ReadCount 300000 | %{$i++; $_ | Out-File out_$i.sql}
運行每個文件在MS SQL Server Management Studio中
有幾個提示how to speed up the inserts。
Other approach is to use mysqldump –where
option。通過使用這個選項,你可以在任何條件下分割你的表,這個條件由where
sql子句支持。
我們如何才能導出整個數據庫而不是表格 – MonsterMMORPG 2017-03-23 15:34:56
嘗試使用'--databases [db_name]'關鍵字來解釋這個答案:http://stackoverflow.com/a/26096339/155687 – Vladislav 2017-03-27 06:57:39
這傢伙有使用MS Access作爲MySQL和MSSQL
之間的TUNEL一個簡單的一招您可以閱讀http://azamudd.in/convert-data-from-mysql-into-mssql-the-easy-way-via-ms-access/
後你也可以使用「ODBC」 +「SQL Server導入和導出嚮導」。 下面的鏈接描述它: https://www.mssqltips.com/sqlservertutorial/2205/mysql-to-sql-server-data-migration/
我今天有一個非常類似的問題 - 我需要從MySQL大表(5個百萬行)複製到MS SQL。
這裏是我(在Ubuntu Linux操作系統)來完成的步驟:
創建一個表,MS SQL其中結構源表匹配的MySQL。
安裝MS SQL命令行:https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools#ubuntu
轉儲的表從MySQL到一個文件:
mysqldump \ --compact \ --complete-insert \ --no-create-info \ --compatible=mssql \ --extended-insert=FALSE \ --host "$MYSQL_HOST" \ --user "$MYSQL_USER" \ -p"$MYSQL_PASS" \ "$MYSQL_DB" \ "$TABLE" > "$FILENAME"
在我的情況轉儲文件相當大,所以我決定將它分成若干小塊(每個1000行) -
split --lines=1000 "$FILENAME" part-
最後,我遍歷這些小文件,做了一些文本替換,並通過一個針對MS SQL服務器執行的作品之一:
export SQLCMD=/opt/mssql-tools/bin/sqlcmd x=0 for file in part-* do echo "Exporting file [$file] into MS SQL. $x thousand(s) processed" # replaces \' with '' sed -i "s/\\\'/''/g" "$file" # removes all " sed -i 's/"//g' "$file" # allows to insert records with specified PK(id) sed -i "1s/^/SET IDENTITY_INSERT $TABLE ON;\n/" "$file" "$SQLCMD" -S "$AZURE_SERVER" -d "$AZURE_DB" -U "$AZURE_USER" -P "$AZURE_PASS" -i "$file" echo "" echo "" x=$((x+1)) done echo "Done"
當然,你需要更換像$AZURE_SERVER
我的變量中, $TABLE
等與你的。
希望有所幫助。
- 1. 將asp.net/ms sql 2012網站數據庫導入本地mysql服務器2012
- 2. 將MySQL數據庫導入MS Azure
- 3. 如何將MS SQL服務器表導入到mysql中?
- 4. 導入數據到MS SQL數據庫
- 5. MS ACCESS,VB將外部MS Access表導入SQL服務器表
- 6. 將MySQL數據庫從一臺服務器導入到另一臺服務器
- 7. 如何將本地MySQL數據庫導入到Web服務器
- 8. 使用wamp服務器將數據庫導入到mysql localhost
- 9. 將XML文件導入SQL服務器數據庫
- 10. 將SQL服務器數據庫導入到HDFS或HIVE
- 11. 如何將事務性MySQL數據導入SQL Server數據庫
- 12. 將數據從MS SQL服務器複製到MySQL
- 13. 創建:::在SQL服務器數據庫中導入數據
- 14. 如何導出MS Sql Server數據庫轉儲並將其導入到Mysql數據庫中?
- 15. 導出SQL Server數據庫導入到Microsoft服務器
- 16. 導入數據庫MS SQL Server的
- 17. 將mysql數據庫導入mariadb
- 18. SQL導入:從CSV導入數據到SQL服務器
- 19. VBA將數據從SQL服務器寫入Access數據庫
- 20. 使用ActiveRecord將數據從MS Access數據庫導入MySQL數據庫
- 21. Sql數據庫服務器
- 22. 將MS ACCESS數據庫表導入teradata
- 23. 導入mysql數據庫來打印服務器
- 24. ASP.NET:將數據插入SQL服務器
- 25. WordPress:將MySQL數據庫導入到MariaDB
- 26. 使用批量導入SQL服務器數據庫
- 27. 數據庫與sql服務器導入問題
- 28. 從本地到服務器導入SQL數據庫時出錯
- 29. 將數據從Access導入/導出到遠程MySQL數據庫
- 30. 使用存儲過程將數據從MS Sql導入到MySQL
您是否有權訪問原始數據庫?或者導出文件基本上都是你的? – Whakkee 2010-04-12 11:46:04
我對原始數據庫也有訪問權限。我只是認爲使用轉儲可能會更容易 – marionmaiden 2010-04-12 11:49:19